【问题标题】:EPPlus Formula EvaluationEPPlus 配方评估
【发布时间】:2017-07-17 15:35:37
【问题描述】:

在使用 EPPlus 时,我试图将公式的结果插入到单元格中

即:

Worksheet.Cells["A4"].Value = 3
Worksheet.Cells["A5"].Value = 4
Worksheet.Cells["A6"].Formula = "=SUM(A3:A4)"
Worksheet.Cells["A6"].Calculate()

在工作表中,我将在公式栏中看到公式,但我想要在 EPPlus 中评估公式并将值插入单元格。因此,当单击单元格时,我看到的只是 7 而不是 =SUM(A3:A4)

这样做的原因是因为我有很大的工作表(出于商业原因)并且在打开时计算公式意味着加载工作表需要大约 20 秒

【问题讨论】:

  • 跳过=,应该是:Worksheet.Cells["A6"].Formula = "SUM(A3:A4)"
  • 感谢您的回复。这没有用。它仍然显示公式,并且公式结果会在工作表打开时尝试计算
  • 我认为“计算”正在用计算值替换公式。因此,如果您想保留公式,则不能使用“计算”​​。作为加快速度的提示(至少在 EPPlus 方面),尝试为单元格范围定义格式和公式,而不是一次为每个单元格设置一个。当您从 EPPlus 生成文件时,这似乎使事情运行得更快,并且还可能加快在 Excel 中打开它的时间 - 尽管需要进一步测试来验证这一点。

标签: c# excel epplus


【解决方案1】:

只是为了说明答案:

【讨论】:

    【解决方案2】:

    如果您想在将工作簿发送到客户端之前计算并删除实际公式,则应在调用 Calculate() 后将 Formula 属性设置为 string.Empty。计算的值存储在单元格的 Value 属性中。

    【讨论】:

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