我正在使用apache POI通过添加以下依赖项来读取 xlsx 文件
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.8</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.5.0</version>
</dependency>
即使部署在tomcat中,我也会在使用jetty插件运行时遇到异常。
org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62)
at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:403)
at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155)
......
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
...........
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.openxmlformats.schemas.spreadsheetml.x2006.main.StyleSheetDocument
at org.openxmlformats.schemas.spreadsheetml.x2006.main.StyleSheetDocument$Factory.parse(Unknown Source)
at org.apache.poi.xssf.model.StylesTable.readFrom(StylesTable.java:121)
at org.apache.poi.xssf.model.StylesTable.<init>(StylesTable.java:92)
... 186 more
我删除了xmlbeans依赖项,因为maven将自动下载poi依赖项,仍然是同样的异常。任何帮助?
答案 0 :(得分:15)
我使用版本3.12的poi。还需要以下依赖项:
compile 'org.apache.poi:ooxml-schemas:1.1'
答案 1 :(得分:4)
我让它为这些依赖项运行:
def poiVersion='3.9' compile 'org.apache.poi:poi:'+poiVersion compile 'org.apache.poi:poi-ooxml:'+poiVersion compile 'org.apache.poi:poi-ooxml-schemas:'+poiVersion
当我尝试其他人时,它不起作用:
3.10:maven central不知道
3.11:失败,在这种情况下确切地说错误!!!
结论POI 3.9有效!!!!
答案 2 :(得分:4)
我尝试将poi 3.10
,3.11
和3.12 beta
与Grails一起使用并获取此错误。
下载并包含http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/poi/ooxml-schemas/1.0/ooxml-schemas-1.0.jar后,错误消失了。
答案 3 :(得分:0)
我使用3.7,但你尝试添加
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.8</version>
</dependency>
答案 4 :(得分:0)
这是由于poi jars不一致而发生的。 您可以下载最新的jar,它将开始工作。
您可以为以下所有文件添加最新的jar文件:
Commons-compress, ooxml-schemas, 便签本 poi-ooxml poi poi-ooxml-schemas, dom4j poi-excelant