java - Apache POI 中的错误自动筛选

标签 java excel apache-poi jboss6.x

我遇到的问题是,当我尝试添加自动过滤器时,我收到另一个错误,如果我可以提供帮助,这里我留下代码并感谢:

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/

相关文章:

java - 由于错误绑定(bind)扫描 <jar-file> 而创建 entityManagerFactory 时出错

java - 如何将奇数索引转换为索引 {0,1,2,3,4,5}?

c++ - Excel VBA 中 C++ DLL 位置的无法解释的行为

java - 根据 HashMap 中 ArrayList<String> 的大小进行排序

java - Java 中的服务器程序并传递对 Socket 对象的引用

asp.net - 将网页导出到 Excel 时保留 CSS 样式

excel - VBA根据数据透视表中的背景颜色更改字体颜色

ms-word - 如何使用 Java 从模板或现有文档创建 Word 文档?

java - 如何从 Excel 中的数组列表中收集引用

java - APACHE POI - 将单元格样式设置为时间