java - 读取 xlsx 文件时出现 apache POI 异常

标签 java exception apache-poi

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

最佳答案

我使用 3.12 版的 poi。还需要以下依赖项:

编译'org.apache.poi:ooxml-schemas:1.1'

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

关于java - 读取 xlsx 文件时出现 apache POI 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10330593/

相关文章:

java - 线程中的异常 "main"java.lang.ArrayIndexOutOfBoundsException : -1

java - Apache Poi : get page count in DOC document

java - 如何在特定栏上书写?

java - 使用二维数组填充行和单元格时遇到困难

java - 为什么找不到合适的jdbc驱动:derby:derbyDB

java - 如何删除工具栏底部边距?

java - 我应该将抛出异常放在链式重载构造函数中的哪里?

php - 父类中抛出的异常未在子类中捕获

java - Sybase:以编程方式关闭外键检查

python - Try...除了多个独立的语句外,执行尽可能多的语句