【问题标题】:How to parse formula values as text in Excel via C#如何通过 C# 将公式值解析为 Excel 中的文本
【发布时间】:2011-04-05 18:14:57
【问题描述】:
我必须从 MS Excel 文件中解析出一些数据。
我需要从中获取数据的单元格具有公式文本作为其值。
例如:
Sheet 2 [A1].Value = "$50"
Sheet 1 [A1].Formula = "='Sheet2'!A1"
当我获取Sheet1 [A1] 的值时,我得到的是='Sheet2'!A1,而不是$50。
有没有办法使用C#从Sheet1[A1]获取公式计算后的文本值?
【问题讨论】:
标签:
c#
excel
worksheet-function
【解决方案1】:
这是我使用 Rup 提到的 Microsoft.Office.Interop.Excel 得到的结果
using Microsoft.Office.Interop.Excel;
string fileName = @"C:\TestSheet.xls";
Application xlApp = new Application();
Workbook book = xlApp.Workbooks.Open(fileName);
Worksheet sheet = xlApp.Worksheets[1];
Range range = sheet.get_Range("A1");
Console.WriteLine(range.get_Value(XlRangeValueDataType.xlRangeValueDefault));
【解决方案2】:
我不确定Range 的哪个成员处理该集合,但我猜它等同于Value2,而不是与电子表格相同的一般输入。试试:
Sheet1[A1].Formula = "='Sheet2'!A1";
Console.Out.WriteLine(Sheet1[A1].Value2);
明确地将其设置为论坛。您可能还需要触发重新计算,但我希望不会。