假设我在单元格 A1 中有一个公式,例如:A1 contains =B1+C1
B1 包含数字 5
C1 包含数字 5
然后我使用以下 C# 在工作表中获取 UsedRange 的对象数组:
Microsoft.Office.Interop.Excel.Range excelRange = excelWorksheet.UsedRange;
object[,] valueArray = (object[,])excelRange.get_Value(XlRangeValueDataType.xlRangeValueDefault);
ValueArray 将包含 3 个条目:
值数组[0,0]=10
值数组[0,1]=5
值数组[0,2]=5
如何改为编写 C# 以便返回:
值数组[0,0]="=B1+C1"
值数组[0,1]=5
值数组[0,2]=5
综上所述,如果是公式,我希望对象数组元素包含公式,但如果不是公式,我希望对象数组元素包含值。
解决方案
object[,] formulaArray = (object[,]) excelRange.Formula;
object[,] valueArray = (object[,])excelRange.Value2;
所有公式都以“=”开头;因此,按照您的逻辑要求混合对象数组。