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))

但是,这并不工作。

+0

这是因为该过程的互操作的缓慢。保留公式,但是在Application.CalculationState上循环,以便确保Excel已经计算出了该值。 –

+0

这是不是可以做下面的事情,目前它不适合我 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

您可以尝试使用range.FormulaArray属性将公式设置为使用C#的单元格。

例如:

Range r = activeWorksheet.get_Range("Y9",Type.Missing); 
r.FormulaArray = "=MAX(LEN(D3:E3))";