10

以下の依存関係を追加して、 xlsxファイルを読み取るためにApache POIを使用しています

<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

Maven が poi の依存関係を自動的にダウンロードするため、xmlbeans の依存関係を削除しましたが、それでも同じ例外です。

4

5 に答える 5

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

とGrails を使用してみpoi 3.10ましたが、このエラーも発生します。3.113.12 beta

ダウンロードして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 に答える