【问题标题】:GemBox Retrieving Calculated Values From a Spreadsheet or FlexcelGemBox 从电子表格或 Flexcel 中检索计算值
【发布时间】:2019-11-15 18:32:36
【问题描述】:

根据他们的文档:GemBox.Spreadsheet 可以读写公式,但不能计算公式结果。当您在 MS Excel 中打开 XLS 文件时,将自动计算公式结果。

因此,如果我创建一个包含一些注入值的电子表格并将其保存到磁盘,如果我在 excel 中打开文件,我可以看到计算值..

如果我在 gembox 中打开该文件并查找计算单元格的值,我会得到 0 的结果

flexcel 中也存在相同的功能.. 无法从给定单元格中检索计算值.. 它返回零..

所以我正在做的是:

  1. 打开现有的 Excel 文件
  2. 将一些数字放入一些单元格中
  3. 以不同的名称将文件保存到磁盘(也尝试使用相同的文件)
  4. 再次打开文件并查看作为计算单元格的总计列

该值始终为0..我在excel中打开文件..该值按预期计算。

【问题讨论】:

    标签: c# excel asp.net-mvc-3 gembox-spreadsheet


    【解决方案1】:

    编辑 28-09-2016:
    我们发布了新版本的 GemBox.Spreadsheet(4.1 版),其中我们实现了对单元格公式计算的支持,see the version history page。
    另外,您可以找到calculation example here。

    原始答案
    GemBox.Spreadsheet 目前仅支持由 Excel 计算的值(因此如果文件由 MS Excel 保存,我们可以读取公式值)。 GemBox.Spreadsheet 没有自己的计算引擎。

    要以 XLS 格式读取公式值,请使用接受XlsOptions 枚举的ExcelFile.LoadXls 重载并使用XlsOptions.PreserveWorksheetRecords 或XlsOptions.PreserveAll。

    要以 XLSX 格式读取公式值,请使用 ExcelFile.LoadXlsx 方法和 XlsxOptions 枚举值 XlsxOptions.PreserveKeepOpen 或 XlsxOptions.PreserveMakeCopy。

    【讨论】:

    • 您好 JWiley,我将发布您发布的原始问题的答案,但简而言之,您的问题不在于阅读(读取值),您的问题发生是因为读取的值需要需要重新计算,并且当前版本的 GemBox.Spreadsheet(3.9 版)没有计算引擎,因此无法重新计算公式。
    【解决方案2】:

    你的实际问题是什么?

    单元格有两个属性:值和公式。您所看到的是 Excel 即时重新计算的价值。正如您所说,Gembox 不会重新计算值。

    如果您需要公式评估,请查找其他库,例如 Apache POI。

    【讨论】:

      猜你喜欢
      • 2013-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多