2012-06-15 36 views
0

我在c#中有一個方法Form應用程序在給定範圍時從Excel返回數據。當用戶選擇行號和列號時計算Excel範圍

... 
Microsoft.Office.Interop.Excel.Worksheet aWs = aWb.Worksheets[sheetName] as Microsoft.Office.Interop.Excel.Worksheet; 

      Range headers = aWs.get_Range(range1, range2); 

      object[,] values = headers.get_Value(hmissing) as object[,]; 
... 

這裏range1range2和是單元格值。例如:A1,B7

當用戶選擇行號和列號時,我想計算這個range1range2

If user select Rows ={All} and columns = {A,B,C} => result={A1,C265} 
If user select Rows ={1,2,3,4} and columns = {A,B,C} => result={A1,C4} 
If user select Rows ={1,2,4,5} and columns = {A,B,C} => result={A1,C2} {A4,C5} 
If user select not matching rows and columns => result={null} 

我該怎麼做?我們可以實現一個方法嗎?是否有任何由Excel提供的API來執行此操作?

謝謝。

回答

0

嘗試使用LinqToexcel它會幫助你解決這個問題linqtoexcel

希望這有助於

+0

它沒有一個我想要的方法。 :( – devan

1

如果你想要做的是重新計算公式Excel有幾種計算方法。
要計算特定範圍,請使用Range.Calculate或Range.CalculateRowMajorOrder。
請注意,如果Excel處於自動計算模式,則不需要此選項,因爲所有公式都會根據需要自動重新計算。