Java导出Excel,poi为4.x版本新建Workbook报错org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit

问题描述:

导出Excel时将Poi jar包升级为4.x时,启动应用报以下错误

Caused by: java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
	at org.apache.poi.ooxml.POIXMLTypeLoader.(POIXMLTypeLoader.java:43)
	at org.apache.poi.xssf.model.ThemesTable.(ThemesTable.java:86)
	... 12 more
解决思路:

查看类org.apache.xmlbeans.XmlOptions,搜索发现这个类确实没有setEntityExpansionLimit()这个方法,估计是版本不匹配(使用的是2.x版本的xmlbeans)不知道是因为之前使用的旧版POI的残留缓存导致idea识别问题还是官方poi自己的依赖搞错了

解决方案:在poi的引入中手动排除xmlbeans依赖

         
            org.apache.poi
            poi
            4.1.2
            
                
                    org.apache.xmlbeans
                    xmlbeans
                
            
        
        
            org.apache.xmlbeans
            xmlbeans
            3.1.0
        
        
            org.apache.poi
            poi-ooxml
            4.1.2
        

maven Reimport一下依赖,再次执行,问题就解决了。

你可能感兴趣的:(java,excel,apache)