我遇到的问题是,当我尝试添加自动过滤器时,我收到另一个错误,如果我可以提供帮助,这里我留下代码并感谢:
prueba.setAutoFilter(CellRangeAddress.valueOf((new AreaReference(new CellReference(0, 0), new CellReference(tmp.datos.size() - 1, tmp.columna.size() - 1))).formatAsString()));
这是错误:
Exception in thread "main" java.lang.AbstractMethodError: org.apache.poi.xssf.usermodel.XSSFEvaluationWorkbook.get3DReferencePtg(Lorg/apac he/poi/ss/util/AreaReference; Lorg/apache/poi/ss/formula/SheetIdentifier;) Lorg/apache/poi/ss/formula/ptg/Ptg;
at org.apache.poi.ss.formula.FormulaParser.createAreaRefParseNode(FormulaParser.jav a:614)
at org.apache.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:449)
at org.apache.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java: 237)
at org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:112 6)
at org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1086)
at org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1073)
at org.apache.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1433)
at org.apache.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:1533)
at org.apache.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:1517)
at org.apache.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:1474)
at org.apache.poi.ss.formula.FormulaParser.unionExpression(FormulaParser.java:1454
at org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:1575)
at org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:145)
at org.apache.poi.xssf.usermodel.XSSFName.setRefersToFormula(XSSFName.java:195)
at org.apache.poi.xssf.usermodel.XSSFSheet.setAutoFilter(XSSFSheet.java:3138)
最佳答案
您遇到了三个问题。首先,如 this Apache POI FAQ entry 中所述
Can I mix POI jars from different versions?
No. This is not supported.
All POI jars in use must come from the same version. A combination such as poi-3.11.jar and poi-ooxml-3.9.jar is not supported, and will fail to work in unpredictable ways.
所以,正如您所说,您混合了 3.9 和 3.11 jar,这是您的问题,不受支持。您所有的 jar 都需要是相同的版本
其次,正如评论中所讨论的,如果您无法确定您正在使用哪些 POI jar,则需要按照 the directions in this POI FAQ Entry 进行操作其中准确描述了您的情况,其中有方便的代码可以帮助您找到您真正使用的 jar ,而这些 jar 可能不是您想要使用的!
最后,[java.lang.NoClassDefFoundError: javax/xml/stream/XMLEventFactory.newFactory()]]( http://poi.apache.org/faq.html#faq-N1017E ) 上的 POI FAQ 也解释了这一点。我建议使用更新的、损坏较少的 JVM,但是更新的 POI(每晚,或 3.12 beta 2)应该有一个解决方法
基本上,Apache POI FAQ page你完全覆盖了吗...
关于java - Apache POI 中的错误自动筛选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29279031/