Excel处理抛出异常' NoSuchMethodError' on。关于.xlsx文件的公式评估器

时间:2015-05-21 07:12:11

标签: java apache-poi

我在处理excel文件时遇到问题。 处理excel对.xls文件工作正常。 但是当它在公式求值程序上处理.xlsx文件时会抛出以下异常。是否有一个通用的方法来获取.xls和xlsx的Formula Evaluator或需要编写单独的代码?我正在使用poi-3.10.1

以下代码就是例外:

FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();

抛出以下异常:

Caused by: 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)
    at org.apache.poi.xssf.usermodel.XSSFCreationHelper.createFormulaEvaluator(XSSFCreationHelper.java:51)
    at org.apache.poi.xssf.usermodel.XSSFCreationHelper.createFormulaEvaluator(XSSFCreationHelper.java:21)

1 个答案:

答案 0 :(得分:0)

有一个Apache POI FAQ entry on this very topic。基本上,你的类路径中混合了新老POI罐,这让人感到困惑,并且explicitly not a supported option

您需要浏览类路径,并删除任何旧的或不匹配的POI jar,只留下最新Apache POI版本的jar。如果你无法弄清楚你正在使用什么罐子,你可以利用the code in the FAQ entry来帮助你找到

随着所有旧罐子的消失,请添加最新的(currently 3.12),包括他们的dependencies if not using Maven,然后您的代码就可以了!