【问题标题】: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);
      

      明确地将其设置为论坛。您可能还需要触发重新计算,但我希望不会。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-31
        相关资源
        最近更新 更多