我在c#Form Application中有一个方法,在给定Range时从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[,];
...
此处range1
和range2
是单元格值。例如:A1,B7
我想在用户选择行号和列号时计算此range1
和range2
。
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 :(得分:1)
如果您要做的是重新计算公式,Excel有几种计算方法。
要计算特定范围,请使用Range.Calculate或Range.CalculateRowMajorOrder。
请注意,如果Excel处于自动计算模式,不应该被要求,因为所有公式都会根据需要自动重新计算。
答案 1 :(得分:0)
尝试使用LinqToexcel,它将帮助您解决此问题linqtoexcel
希望这会有所帮助