我在处理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)
答案 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,然后您的代码就可以了!