10

我正在使用 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 依赖项,仍然是相同的异常。有帮助吗?

4

5 回答 5

15

我在 3.12 版本中使用了 poi。还需要以下依赖项:

compile 'org.apache.poi:ooxml-schemas:1.1'

另见http://poi.apache.org/faq.html#faq-N10025

于 2015-09-26T21:16:02.563 回答
4

我已经为这些依赖项运行了它:

     def poiVersion='3.9'
     编译'org.apache.poi:poi:'+poiVersion
     编译'org.apache.poi:poi-ooxml:'+poiVersion
     编译'org.apache.poi:poi-ooxml-schemas:'+poiVersion

当我为其他人尝试时,它不起作用:

3.10:maven central 不知道

3.11 : 失败,在这种情况下有确切的错误!!!

结论 POI 3.9 有效!!!!

于 2015-02-27T15:38:41.840 回答
4

我尝试使用poi 3.10,3.113.12 betaGrails 并得到这个错误。

下载并包含http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/poi/ooxml-schemas/1.0/oox​​ml-schemas-1.0.jar后,错误消失了。

于 2015-04-07T11:58:20.207 回答
0

我使用 3.7 但你有没有尝试添加

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml-schemas</artifactId>
        <version>3.8</version>
    </dependency>
于 2012-04-26T10:22:34.333 回答
0

这是由于 poi jar 不一致而发生的。您可以下载最新的 jars,它将开始工作。

您可以为以下所有内容添加最新的 jar 文件:

Commons-compress , ooxml-schemas , poi-scratchpad , poi-ooxml , poi , poi-ooxml-schemas , dom4j , poi-excelant

于 2020-07-20T12:07:54.907 回答