Apache POI评估公式
|
我的工作表单元格中有一些公式,我想在插入一些值后对其求值。例如:
我的公式是
=SUM(B1,B2)
在值插入之前,B1
值为was2ѭ,B2
值为was4ѭ,公式结果为4
插入值后,现在B1的值为5
,而B2的值为2
,但公式仍产生4
,如何计算/计算该值?
自然地,当我按下公式单元格上的返回按钮后,便会计算出新值7
,是否有一种无需手动交互即可触发此值的方法?
我使用的是Excel 2007,所以XSSFWorkbook
编辑/更新:
在发布Gabors解决方案之前,我已经使用过该解决方案,但是我将其用作参考,这是发生的情况:
Exception in thread \"main\" java.lang.NoSuchMethodError: org.apache.poi.ss.formula.WorkbookEvaluator.<init>(Lorg/apache/poi/ss/formula/EvaluationWorkbook;Lorg/apache/poi/ss/formula/IStabilityClassifier;Lorg/apache/poi/hssf/record/formula/udf/UDFFinder;)V
at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.<init>(XSSFFormulaEvaluator.java:64)
at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.<init>(XSSFFormulaEvaluator.java:51)
...............
...............
这是相关代码的一部分:
public XSSFFormulaEvaluator getEvaluator(){
if(evaluator == null){
evaluator = new XSSFFormulaEvaluator(wb);
}
return evaluator;
}
实际调用评估者:
//where index is int, and mycell is int
row = (XSSFRow) sheet.getRow(index);
cell = row.createCell(mycell);
getEvaluator().evaluateFormulaCell(cell);
我正在寻找使用此工具并成功的人,而不是那些没有真正尝试过google解决方案的人,至少我一直在谷歌上搜索很多。
根据Gagravar的建议,我在类路径上确实有2个POI:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.8-beta1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.7</version>
</dependency>
我虽然需要3.7版本的XSSF工作簿等。
解决方案:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.8-beta2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.8-beta2</version>
</dependency>
没有找到相关结果
已邀请:
4 个回复
需复
要么:
有关更多详细信息,请参见http://poi.apache.org/spreadsheet/eval.html。
壤欠攻混
? (或更具体地说::19ѭ。) 如果不起作用:您正在使用哪个版本的POI? v3.5支持XSSF中的公式。 另外,尝试使用XSSFCreationHelper实例化POI文档建议的公式计算器。
娠侈脚惮顽
磨标烫徽啪