C#互操作,如何获得Excel中单元格范围内的最大长度
问题描述:
我想使用C#互操作库获取Excel中单元格范围内的最大长度。C#互操作,如何获得Excel中单元格范围内的最大长度
我知道,我们可以通过在Excel中做到这一点: -
1. =MAX(LEN(A2:A65636))
2. press ctrl+shft+enter after typing in the formula.
但我想用公式通过我的C#程序去做。
当前我正在遍历列范围内的所有单元格并设置最大计数。但是对于大型excel文件占用50000行需要花费很多时间。
我已经试过连,设置公式动态=MAX(LEN(A2:A rcnt))
但是,这并不工作。
答
您可以尝试使用range.FormulaArray属性将公式设置为使用C#的单元格。
例如:
Range r = activeWorksheet.get_Range("Y9",Type.Missing);
r.FormulaArray = "=MAX(LEN(D3:E3))";
这是因为该过程的互操作的缓慢。保留公式,但是在Application.CalculationState上循环,以便确保Excel已经计算出了该值。 –
这是不是可以做下面的事情,目前它不适合我 1.输入公式 2. SendKeys Shift + Ctrl + Enter到xlApp new_formula =“= MAX(LEN(F2:F56)) “; (range.Cells [1,cl + 1] as Excel.Range).Value2 = new_formula xlApp.SendKeys(“+^{ENTER}”); 请让我知道 – Rakesh