2011-11-20 17 views
18

Desidero utilizzare la libreria POI di Apache per analizzare i file excel (versioni precedenti e versioni più recenti di excel). Così mi chiedevo cosa vasetti ho bisogno di includere dalla Apache POI perché nel seguente link:Le dipendenze Maven richieste per il POI Apache funzionano

http://mvnrepository.com/artifact/org.apache.poi

Ho trovato un sacco di vasi da includere, non ho bisogno di includere tutti?

In tal caso, qual è l'ultima versione stabile da includere e funziona con Microsoft Office 2010?

risposta

31

No, si non devi includere tutti dipendenze POI s'. Il meccanismo di dipendenza transitiva di Maven si prenderà cura di questo. Come noted devi solo esprimere una dipendenza dall'artefatto POI appropriato. Per esempio:

<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi-ooxml</artifactId> 
    <version>3.8-beta4</version> 
</dependency> 
5

Per uno scrittore di Excel potrebbe essere necessario il seguente:

  <dependency> 
       <groupId>org.apache.poi</groupId> 
       <artifactId>poi</artifactId> 
       <version>3.10-FINAL</version> 
      </dependency> 


     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi-ooxml</artifactId> 
      <version>${apache.poi.version}</version> 
     </dependency> 
-2

OOXML per trattare i file .xlsx e OOXML si riferisce al xml, quindi ci sarà bisogno di rinviare la qui di seguito tre dependedncies nel pom.xml per l'

<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi</artifactId> 
    <version>3.9</version> 
</dependency> 
<dependency> 
    <groupId>xml-apis</groupId> 
    <artifactId>xml-apis</artifactId> 
    <version>1.4.01</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi-ooxml</artifactId> 
    <version>3.9</version> 
    <exclusions> 
    <exclusion> 
     <artifactId>xml-apis</artifactId> 
     <groupId>xml-apis</groupId> 
    </exclusion>  
    </exclusions> 
</dependency> 
0

Se non si utilizza Maven, allora si avrà bisogno **

  • poi
  • POI-OOXML
  • XMLBeans
  • dom4j
  • poi-OOXML-schemi
  • stax-api
  • ooxml-schemi
+0

Il vaso Stax-api e vaso dom4j non sono necessari sull'ultima versione di Apache POI (3.11), quindi questo non è sempre corretto – Gagravarr

1

Ho usato la dipendenza sottostante. Se usi Selenium, è bene utilizzarli tutti come sotto. Altrimenti vedrete alcuni errori e quindi fare la ricerca e aggiungere alcune altre dipendenze.

<dependency> 
       <groupId>org.apache.poi</groupId> 
       <artifactId>poi</artifactId> 
       <version>3.9</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.poi</groupId> 
       <artifactId>poi-ooxml</artifactId> 
       <version>3.9</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.poi</groupId> 
       <artifactId>poi-ooxml-schemas</artifactId> 
       <version>3.9</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.poi</groupId> 
       <artifactId>poi-scratchpad</artifactId> 
       <version>3.9</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.poi</groupId> 
       <artifactId>ooxml-schemas</artifactId> 
       <version>1.1</version> 
      </dependency> 

      <dependency> 
       <groupId>org.apache.poi</groupId> 
       <artifactId>openxml4j</artifactId> 
       <version>1.0-beta</version> 
      </dependency> 
+1

Apache POI 3.9 è piuttosto vecchio, perché stai suggerendo che le persone lo usano? E la dipendenza 'openxml4j' non dovrebbe essere necessaria in questi giorni – Gagravarr

+0

non può rendere Maven in Eclipse riconoscere qualsiasi versione superiore a 3.9. di solito finisce il lavoro. Inoltre è ridicolo aggiungere 6-7 dipendenze per qualcosa che dovrebbe risolvere tutte le dipendenze per una libreria – Leo

0
<dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi-ooxml</artifactId> 
     <version>3.10-FINAL</version> 
    </dependency> 
+0

Perché stai suggerendo una vecchia versione? Sicuramente 3.11, l'ultima versione stabile, sarebbe meglio? – Gagravarr

+0

grazie! hai ragione! –

0

Aggiungi questa dipendenza per lavorare con Apache POI

<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi</artifactId> 
    <version>3.16-beta1</version> 
</dependency> 
1

le seguenti opere per me:

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> 
    <dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi</artifactId> 
     <version>3.16</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --> 
    <dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi-ooxml</artifactId> 
     <version>3.16</version> 
    </dependency> 
+0

Dovrebbe essere utilizzata la stessa versione di "poi" e "poi-ooxml" –

Problemi correlati