2012-04-26 12 views
10

sto usando Apache POI per la lettura xlsx file aggiungendo sotto le dipendenzeapache in lettura dei file 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> 

che sto ricevendo seguente eccezione durante l'esecuzione con il plugin pontile, anche se distribuito in Tomcat.

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 

ho rimosso la dipendenza XMLBeans come l'esperto di scaricherà automaticamente le dipendenze dei punti di interesse, sempre lo stesso exception.Any aiuto?

+0

ottenuto anche questo errore utilizzando '' 3.11' e 3.12 beta' – Guus

+2

Hai provato [leggere le FAQ voce di Apache POI su questo argomento] (http://poi.apache.org/faq.html#faq-N10025)? – Gagravarr

risposta

0

utilizzare 3,7, ma hanno di provare l'aggiunta di

<dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi-ooxml-schemas</artifactId> 
     <version>3.8</version> 
    </dependency> 
+0

Ottenere la stessa eccezione anche dopo aver aggiunto questa dipendenza, anche io ho provato la versione 3.7 ma invano. – pavan

+0

Per 3.7, ce l'ho a lavorare con POI-3.7, poi-OOXML-3.7, POI-OOXML-schemas-3.7, XMLBeans-2.3.0, geronimo_stax_api_1.0 e dom4j-1.6.1 –

+0

Anche dopo l'aggiunta di tutte le dipendenze voi menzionata stessa eccezione. – pavan

4

ho fatto funzionare per queste dipendenze:

 

    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 

Quando provo per gli altri non funziona:

3.10 : non è noto a Maven centrale

3.11: non riesce, con precisa l'errore in questo caso !!!

Conclusione POI 3.9 funziona !!!!

+2

Sto fallendo con gli stessi errori, e ho la stessa esperienza quando si regola le versioni, tranne che il mio "' ClassNotFound'" è' org.openxmlformats.schemas.spreadsheetml.x2006.main.CTExtensionList'. Qualcuno sa se questo è segnalato come un bug in 'poi-ooxml' 3.11? – BalRog

+0

questa risposta è fuorviante non è che poi 3.12 è rotto, è necessario includere la dipendenza da schema completo ooxml. Nota ci sono due vasi di nome simile. vedi sotto la risposta di Aliaksandr Pyrkh. – mzzzzb

15

ho usato poi con la versione 3.12. è inoltre richiesta la seguente dipendenza:

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

vedi anche http://poi.apache.org/faq.html#faq-N10025

+0

Dal link: sono disponibili due file jar. Il barattolo completo di tutti gli schemi è ooxml-schemas-1.x.jar e jar più piccolo -ooxml-schemas è solo circa 4mb. Quest'ultimo file jar contiene solo le parti solitamente utilizzate. – mzzzzb

+0

ultima versione: http://search.maven.org/#artifactdetails%7Corg.apache.poi%7Cooxml-schemas%7C1.3%7Cjar – slim

Problemi correlati