Apache POI: manipolare documenti Microsoft in Java

Apache POI: manipolare documenti Microsoft in Java

Il progetto Apache POI ha come obiettivo quello di creare delle API Java per poter manipolare i diversi formati su cui sono basati i documenti Office di Microsoft, in particolare l'API è in grado di manipolare file di tipo OOXML (Office Open XML) e di tipo OLE 2 (OLE 2 Compound Document). Lo standard OLE 2 comprende i file di Office con estensione XLS, DOC e PPT mentre lo standard OOXML comprende quelli con estensione XLSX, DOCX e PPTX.

Apache Commons: componenti riusabili per Java
Apache Lucene
Apache Velocity: un template Engine in Java

Il progetto Apache POI ha come obiettivo quello di creare delle API Java per poter manipolare i diversi formati su cui sono basati i documenti Office di Microsoft, in particolare l’API è in grado di manipolare file di tipo OOXML (Office Open XML) e di tipo OLE 2 (OLE 2 Compound Document). Lo standard OLE 2 comprende i file di Office con estensione XLS, DOC e PPT mentre lo standard OOXML comprende quelli con estensione XLSX, DOCX e PPTX.

Le API per OLE 2 si appoggiano su API di livello più basso chiamate POIFS (OLE2 Filesystem) che serve per manipolare il contenuto del file, e HPSF (OLE2 Document Properties) che si occupa di manipolare le proprietà del file, quali il titolo o l’autore. Le API per OOXML si appoggiano invece sulla libreria openxmlj4. In ogni caso non ci troveremo ad usare queste librerie di basso livello ma utilizzeremo quelli che vengono chiamati “componenti”.

Per ogni applicazione Office esiste un suo componente, che fornisce una API di livello più alto di astrazione per manipolare i file in formato OLE 2 e OOXML. Per Excel i moduli sono HSSF (per OLE 2) e XSSF (per OOXML) ed esiste un modulo per manipolare entrambi i formati che si chiama SS, per Word sono HWPF e XWPD mentre per PowerPoint sono HSLF e XSLF.

Ultimamente è stato incluso il supporto preliminare per Outlook (HSMF), Visio (HDGF) e Pubblisher (HPBF).

Il progetto Apache POI è alla base di altri progetti Apache quali Lucene, di cui abbiamo parlato in questo articolo, e Tika.

Possiamo scaricare le API come pacchetto zip o tar all’indirizzo:

http://poi.apache.org/download.html

tale archivio comprende diversi jar file che non sono tutti necessari ma dipendono dal formato e dal tipo di file  che vogliamo utilizzare secondo questo schema:

ComponenteTipo di fileFile .jar
POIFSOLE2 FileSystempoi-version-yyyymmdd.jar
HPSFOLE2 Property Setpoi-version-yyyymmdd.jar
HSSFExcel XLSpoi-version-yyyymmdd.jar
HSLFPowerPoint PPTpoi-scratchpad-version-yyyymmdd.jar
HWPFWord DOCpoi-scratchpad-version-yyyymmdd.jar
HDGFVisio VSDpoi-scratchpad-version-yyyymmdd.jar
HPBFPubblisher PUBpoi-scratchpad-version-yyyymmdd.jar
HSMFOutlook MSGpoi-scratchpad-version-yyyymmdd.jar
XSSFExcel XLSXpoi-ooxml-version-yyyymmdd.jar
XSLFPowerPoint PPTXpoi-ooxml-version-yyyymmdd.jar
XWPFWord DOCXpoi-ooxml-version-yyyymmdd.jar
OpenXML4JOOXMLpoi-ooxml-schemas-version-yyyymmdd.jarooxml-schemas-version-yyyymmdd.jar

Inoltre questi jar hanno a loro volta dei jar come prerequisiti:

File .jarPrerequisiti
poi-version-yyyymmdd.jarcommons-logging, log4j
poi-scratchpad-version-yyyymmdd.jarpoi-version-yyyymmdd.jar
poi-ooxml-version-yyyymmdd.jarpoi-version-yyyymmdd.jar, poi-version-yyyymmdd.jar
poi-ooxml-schemas-version-yyyymmdd.jarxmlbeans, geronimo-stax-api_1.0_spec
ooxml-schemas-version-yyyymmdd.jarxmlbeans, geronimo-stax-api_1.0_spec

COMMENTS

WORDPRESS: 0