POI cell.setCellFormula导致“名称'MY_FUNC'在当前工作簿中完全未知”错误

时间:2011-10-24 02:27:17

标签: excel apache-poi

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

但是,当我尝试使用setCellFormula设置公式时,我得到一个例外:

线程“main”中的异常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)

有没有一种方法可以设置公式而不立即评估它?

1 个答案:

答案 0 :(得分:3)

如果Excel打开然后将公式插入单元格将导致Excel评估公式。
我所知道的唯一方法是插入前缀为'的公式字符串,使其成为字符串而不是公式。
然后addin -self必须通过查找和替换'= with =

将字符串转换为公式