【问题标题】:Apache POI: using table column names in formula'sApache POI:在公式中使用表列名
【发布时间】:2015-07-24 13:05:29
【问题描述】:

我在现有工作表中有一个表格,我想添加更多行,复制现有公式。 问题似乎是 apache POI 公式解析器并没有完全得到 excel 中使用的语法:我的公式如下所示:

=[@[column1_name]]/[@[column2_name]]

它被读成这样的东西:

Summary[[#This Row],[column1_name]]/Summary[[#This Row],[column2_name]]

(表的名称是“摘要”)。但是,尝试评估公式失败了

|FormulaParseException Specified named range 'Summary' does not exist in the current workbook.  org.apache.poi.ss.formula.FormulaParser.parseNonRange (FormulaParser.java:547)                                                     

有人遇到过同样的问题吗?提出的解决方案?

【问题讨论】:

  • 顺便说一句,现在我正在做一些非常丑陋的事情:=INDIRECT("H"&ROW())/INDIRECT("E"&ROW()),但这真的不是要求用户添加公式的好方法...
  • 感谢您的解决方法。找到一个合适的方法来解决这个问题仍然很好,但是现在,间接函数对我有用

标签: java excel apache-poi


【解决方案1】:

一个好的解决方法是在 excel 中取消引用表本身。您可以通过选择表格,右键单击并选择表格 -> 转换为范围来执行此操作。这会将所有公式更改为常规单元格引用。我知道这不是一种编程方式来解决,但它可以让你评估公式。

【讨论】:

    猜你喜欢
    • 1970-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
    相关资源
    最近更新 更多