当用户选择行号和列号时计算Excel范围

本文关键字:计算 Excel 范围 用户 选择 | 更新日期: 2023-09-27 18:37:11

>我在 c# 表单应用程序中有一个方法,可以在给定范围时从 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 来执行此操作?

谢谢。

当用户选择行号和列号时计算Excel范围

如果要重新计算公式,Excel 有几种计算方法。
要计算特定范围,请使用 Range.Compute 或 Range.CalculateRowMajorOrder。
请注意,如果 Excel 处于"自动计算"模式,则不需要这样做,因为所有公式都会根据需要自动重新计算。

尝试使用 LinqToexcel 它将帮助您解决此问题 linqtoexcel

希望这有帮助