2017-03-27 78 views
0

私はJXLS Javaライブラリを使用してExcelレポートを生成しています。サンプルgetting startedチュートリアル(Object collection output demo)を実行しようとしています。チュートリアルで提案されているように、プロジェクトビルド設定ファイルで必要なライブラリを指定するためにmavenを使用しています。以下はJXLSを使用しているorg/apache/poi/openxml4j/exceptions/InvalidFormatException

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 
SLF4J: Defaulting to no-operation (NOP) logger implementation 
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/openxml4j/exceptions/InvalidFormatException 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source) 
    at java.lang.Class.privateGetMethodRecursive(Unknown Source) 
    at java.lang.Class.getMethod0(Unknown Source) 
    at java.lang.Class.getMethod(Unknown Source) 
    at org.jxls.util.TransformerFactory.createTransformer(TransformerFactory.java:34) 
    at org.jxls.util.JxlsHelper.createTransformer(JxlsHelper.java:217) 
    at org.jxls.util.JxlsHelper.processTemplate(JxlsHelper.java:104) 
    at com.ucas.ObjectCollectionDemo.main(ObjectCollectionDemo.java:42) 
Caused by: java.lang.ClassNotFoundException: org.apache.poi.openxml4j.exceptions.InvalidFormatException 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 9 more 

Mavenの依存関係 enter image description here

のJavaのスナップショットがされています。以下は、私は以下の例外を取得し、私の日食でプログラムを実行すると

List<Employee> employees = generateSampleEmployeeData(); try(InputStream is = ObjectCollectionDemo.class.getResourceAsStream("object_collection_template1.xls")) { try(OutputStream os = new FileOutputStream("target/" + fileName)) { Context context = new Context(); context.putVar("employees", employees); JxlsHelper.getInstance().processTemplate(is, os, context); } } 

を使用するJavaコードがありますバージョン:1.8

環境:Windows 7

IDE:Eclipseのネオン

答えて

0

Apache POI処理に必要なXML依存関係に問題があるようです。

私はあなたの依存関係のスクリーンショットでそれらを見ることができますが、プログラムを実行しているときに何らかの理由でそれらが有効ではありません。依存関係の間にいくつかの矛盾があるかもしれません。それは次にあなたが一つ一つ、独自の依存関係を追加し、これでそれが壊れる指す見ることができます

<dependency> 
     <groupId>org.jxls</groupId> 
     <artifactId>jxls</artifactId> 
     <version>2.4.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jxls</groupId> 
     <artifactId>jxls-poi</artifactId> 
     <version>1.0.12</version> 
    </dependency> 

を動作するかどう

はちょうどのみ次の二つの依存関係を追加することにより、最小限のjxlsプロジェクトを作成し、参照してください。

+0

私のMavenリポジトリを削除し、最小限のjxlsプロジェクトを作成しました。今はうまくいきます。 – Sachin

+0

Mavenを使用していない人に洞察を提供できますか?私は空気が詰まったシステム上にあり、ジャーを使用しなければならない – usmcphysicist

0

は、あなたの質問のコードのように、非常に見ていないので、私はここに空白を撮影することがあります。バージョンとバージョンの不一致があり、JXLSと互換性があるバージョンとは異なるバージョンのExcelで作成されているようです。

関連する問題