我想使用POI setCellFormula将公式设置为单元格,该公式来自excel加载项,但当前未安装。之后,我将把excel移至安装了该加载项的PC上以评估公式。

但是,当我尝试使用setCellFormula设置公式时,出现异常:

线程“主”中的异常org.apache.poi.ss.formula.FormulaParseException:在当前工作簿中,名称“ MY_FUNC”是完全未知的
在org.apache.poi.ss.formula.FormulaParser.function(FormulaParser.java:918)
在org.apache.poi.ss.formula.FormulaParser.parseNonRange(FormulaParser.java:556)
在org.apache.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:427)
在org.apache.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java:266)
在org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1117)
在org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1077)
在org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1064)
在org.apache.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1424)
在org.apache.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:1524)
在org.apache.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:1508)
在org.apache.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:1465)
在org.apache.poi.ss.formula.FormulaParser.unionExpression(FormulaParser.java:1445)
在org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:1566)
在org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:174)
在org.apache.poi.hssf.model.HSSFFormulaParser.parse(HSSFFormulaParser.java:72)
在org.apache.poi.hssf.usermodel.HSSFCell.setCellFormula(HSSFCell.java:605)

有没有一种方法可以设置公式而不立即对其求值?

最佳答案

如果打开了Excel,则将公式插入到单元格中将使Excel评估该公式。我知道的唯一方法是插入以'为前缀的Formulastring以使其成为字符串,而不是公式。然后,插件本身必须通过执行查找并将'=替换为=来将字符串转换为公式

10-05 19:06