【问题标题】:FormulaR1C1 "RC[+1]/RC[+2]" doesn't work with EPPlusFormulaR1C1 "RC[+1]/RC[+2]" 不适用于 EPPlus
【发布时间】:2022-01-18 21:23:14
【问题描述】:

图形不再适用于 EPPlus 版本 4.0.5,我升级到版本 5.8.4 但我发现自己使用的是在某些情况下不再适用的 FormulaR1C1。

如果我分配一个使用右侧单元格值的 FormulaR1C1,则该值始终为 0。而如果我使用左侧单元格执行相同的操作,则 FormulaR1C1 会很好地转换为地址并重新发现值。下面是我的文字的解释性图像。当请求计算时,C 和 D 列的值具有正确的值。

Explanatory image of my text

foreach (ExcelRangeBase c in ws.Cells.Reverse())
{
   ExcelRangeBase newCells = assignCell(c, params);
   if (newCells != null)
   {
      string valeur = (c.Value ?? "").ToString();
      if (valeur.StartsWith("{=") && valeur.EndsWith("}"))
      {
        newCells.FormulaR1C1 = "RC[+1]/RC[+2]"; //Simplify for the example but comes from the decomposition of 'valeur'
     }
     newRanges.Add(newCells);
  }
}

ws.Workbook.CalcMode = ExcelCalcMode.Automatic;
ws.Calculate(); 

我在生成过程中没有错误。打开生成的文件时,出现损坏错误。

【问题讨论】:

  • “图形不再适用于 EPPlus 版本 4.0.5”是什么意思?也许这是XY problem
  • EPPlus 5 是一个商业产品,也许他们的支持团队中的某个人可以提供帮助 - 或者您可以提出 GiHub 问题 - 似乎更有可能是产品中的错误,而不是这里有人可以帮助您:github.com/EPPlusSoftware/EPPlus/issues
  • @TechInquisitor 对于图形,我使用模板。并且系列值不再更新。
  • @SBFrancies 我知道 EPPlus 5 现在是一个商业产品(暂时在 POC 中知道它是否允许我们找到我们的功能)。感谢 Github 链接(我认为它只有在我们获得许可后才能访问,而不是之前)。
  • 我的意思是,为什么不坚持使用 EPPlus 4.x?什么停止工作,为什么不继续使用有效的版本? 5.x 中的许可证更改是坚持使用旧版本的另一个令人信服的理由。你甚至可以分叉它们并继续开发它们。

标签: c# excel-formula epplus


【解决方案1】:

我找到了解决方案,只需删除 EPPlus 版本 4.0.5 中强制的 + 号即可。

【讨论】:

    猜你喜欢
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 2016-08-30
    相关资源
    最近更新 更多