Microsoft Office-Dokumente in Java verarbeiten
Auch wenn sich die Welt nach freien und quelloffenen Lösungen sehnt, Microsoft Office ist immer noch eines der bestverkauftesten Produkte auf diesen Planeten mit dem MS-Dokumentenformat als Sonne im Mittepunkt. Da die Dokumentation von Microsofts Dateiformaten mittlerweile zugänglich[[1]]() sind, gibt es auch Java-Bibliotheken, die MS-Office-Dokumente einlesen, modifizieren und schreiben. Bekannt dafür ist Apache POI[[2]]() (), was APIs für folgende Formate (Komponenten genannt) bietet:
POI-Komponete
Aufgabe
Grad der Unterstützung
HSSF, XSSF
Excel XLS, Excel XLSX
Gut
HSLF, XSLF
PowerPoint PPT, PowerPoint PPTX
Ausreichend
HWPF, XWPF
Word DOC, Word DOCX
Befriedigend
HDGF
Visio VSD
Rudimentär, nur lesen
HPBF
Publisher PUB
Rudimentär, nur lesen
HMEF/HSMF
Outlook MSG/ Microsoft TNEF (Transport Neutral Encoding Format)
Rudimentär, nur lesen
OpenXML4J
Open Packaging Conventions (OPC)/OOXML
Gut
POIFS
OLE 2 Compound Document (OLE2 Filesystem)
Sehr gut
HPSF
OLE2 Property Sets
Sehr gut
POI-Komponenten nach
OpenXML4J und POIFS sind keine üblichen Dokumentenformate, aber Archivformate für Microsoft-Dokumenten (analog zu Zip). HPSF erlaubt Zugriff auf Datei-Metadaten wie Autor, Titel, usw.
Neben POI gibt es nicht mehr so viele Alternativen, eher kleinere Bibliotheken, die sich auf ein Formate spezialisiert haben. So etwa für Excel, was eine sehr einfache und intuitive API hat, aber beim Lesen oft Probleme bereitet. Nur wurde es bisher seit 2 Jahren nicht mehr aktualisiert. Eine kommerzielle Lösung bietet Aspose (). Für den Zugriff auf MS Access Datenbanken gibt es die quelloffene Bibliothek , die auch eine sehr aktuelle fluent API hat. Auf MS Access lässt sich aber auch per ODBC zurückgreifen, das Datenbankkapitel gibt eine kleine Übersicht.
Das neue Office-Format basiert auf XML und so auch deutlich einfacher zu verarbeiten als das binäre Format. Es ist im Office Open XML beschrieben. Für Word-Dokumente gibt es zum Beispiel das relativ neue Projekt java2word ().
Neben dem Office Open gibt es das OASIS Open Document Format – mit Dateiformaten wie OpenDocument (ODF) für Textdokumente – die etwa von OpenOffice verarbeitet werden. Eine Bibliothek zum Verarbeiten bietet das ODF Toolkit ().
Fehlt noch was?
[[1]]()
[[2]]() POI steht für „Poor Obfuscation Implementation“, weil das Dateiformat so kryptisch ist. Die Kürzel der Komponenten beginnen in der Regel mit „H“ was für „Horrible“ steht .
3 Kommentare
Chris ·
Für ODF gibt es auch jOpenDocument, http://jopendocument.org/
York ·
Deine Fußnoten verweisen auf Dein FileSystem \[1\] = file:///C:/Users/Christian/....
Jan T. ·
Ich habe mich beruflich ausgiebig mit Asposé auseinandergesetzt. Sowohl mit den Komponentne für die Excel als auch die Word Generierung. Meine Erfahrungen sind sehr positiv. Inzwischen habe ich eine eigene API entwickelt die als Wrapper für die Asposé API dient. Mit Hilfe dieser ist es möglich auch komplexe Dokumente (inkl. Tabellen usw.) von Grund auf zu erstellen. Wir haben die Dokumentengenerierung von einer OpenOffice Lösung (Fernsteuerung via UNO) auf Asposé umgestellt und produzieren jetzt seit einem Jahr erfolgreich mit Asposé!
Die bisherigen Kommentare wurden aus WordPress übernommen. Neue Kommentare sind derzeit geschlossen.