# Apache POI

POI ist eine freie Java-Programmbibliothek zum Lesen und Schreiben von Dateien im Dateiformat von Microsoft Office wie z. B. Word und Excel. Die Software startete als Teil des Jakarta-Projekts und ist nun ein Apache-Top-Level-Projekt.

## Namensherkunft

Der Name war ursprünglich ein Akronym für „Poor Obfuscation Implementation“.

## Softwarekomponenten

Das Apache-POI-Projekt enthält die folgenden Teilkomponenten:
* POIFS (Poor Obfuscation Implementation File System): Diese Komponente liest und schreibt Dateien in Microsofts OLE-2-Compound-Document-Format. Beim OLE-2-Compound-Document-Format handelt es sich um ein Dateisystem, in dem die Daten eines Microsoft-Office-Dokuments in Form von Dateien abgelegt werden. Das Wort Obfuscation spielt darauf an, dass dieses Dateisystem etwas verschleiert ist.
* HSSF (Horrible Spreadsheet Format) und XSSF: Diese Komponente liest und schreibt Dateien im EXCEL-Format (Excel-97, Excel-XP, Excel-2003, Excel-2007, Excel-2008).
* HPSF (Horrible Property Set Format): Diese Komponente liest und schreibt Informationen über die Dokumenteigenschaften einer Datei im Microsoft-Office-Format (»Datei → Eigenschaften«).
* HWPF (Horrible Word Processor Format) und XWPF: Diese Komponente liest und schreibt Dateien im Word-Format (Word-97, Word-XP, Word-2003, Word-2007). Die Komponente befindet sich im Scratchpad (siehe unten).
* HSLF (Horrible Slide Format) und XSLF: Diese Komponente liest und schreibt Dateien im Powerpoint-Format (PowerPoint-97, Powerpoint-XP, Powerpoint-2003). Sie befindet sich im Scratchpad (siehe unten).
* HDGF (Horrible DiaGram Format): Diese Komponente liest Dateien im Visio-Format (Visio-97, Visio-XP, Visio-2003, Visio-2007). Ein Beschreiben der Dateien ist nicht möglich. Die Komponente befindet sich im Scratchpad (siehe unten).
* HPBF (Horrible PuBlisher Format): Diese Komponente liest Dateien im Publisher-Format. Die Komponente befindet sich im Scratchpad (siehe unten).
* HSMF (Horrible Stupid Mail Format): Liest Dateien im Outlook-Format.
Es gibt externe Module für Big-Data-Plattformen (z. B. Apache Hive/Apache Flink/Apache Spark), welche gewisse Funktionen von Apache POI, wie die Verarbeitung von Exceldateien, zur Verfügung stellen.

## Versionshistorie

| Legende: | Ältere Version; nicht mehr unterstützt | Ältere Version; noch unterstützt | Aktuelle Version | Aktuelle Vorabversion | Zukünftige Version |
| Versionsnummer | Freigabedatum |
| Aktuelle Version: 5.2.0 | 14. Januar 2022 |
| Ältere Version; nicht mehr unterstützt: 5.1.0 | 01. November 2021 |
| Ältere Version; nicht mehr unterstützt: 5.0.0 | 20. Januar 2021 |
| Ältere Version; nicht mehr unterstützt: 4.1.2 | 17. Februar 2020 |
| Ältere Version; nicht mehr unterstützt: 4.1.1 | 20. Oktober 2019 |
| Ältere Version; nicht mehr unterstützt: 4.1.0 | 9. April 2019 |
| Ältere Version; nicht mehr unterstützt: 4.0.1 | 3. Dezember 2018 |
| Ältere Version; nicht mehr unterstützt: 4.0.0 | 7. September 2018 |
| Ältere Version; nicht mehr unterstützt: 3.17 | 15. September 2017 |
| Ältere Version; nicht mehr unterstützt: 3.16 | 19. April 2017 |
| Ältere Version; nicht mehr unterstützt: 3.15 | 21. September 2016 |
| Ältere Version; nicht mehr unterstützt: 3.14 | 7. März 2016 |
| Ältere Version; nicht mehr unterstützt: 3.13 | 29. September 2015 |
| Ältere Version; nicht mehr unterstützt: 3.12 | 11. Mai 2015 |
| Ältere Version; nicht mehr unterstützt: 3.11 | 21. Dezember 2014 |
| Ältere Version; nicht mehr unterstützt: 3.10.1 | 18. August 2014 |
| Ältere Version; nicht mehr unterstützt: 3.10 | 8. Februar 2014 |
| Ältere Version; nicht mehr unterstützt: 3.9 | 3. Dezember 2012 |
| Ältere Version; nicht mehr unterstützt: 3.8 | 26. März 2012 |
| Ältere Version; nicht mehr unterstützt: 3.7 | 29. Oktober 2010 |
| Ältere Version; nicht mehr unterstützt: 3.6 | 14. Dezember 2009 |
| Ältere Version; nicht mehr unterstützt: 3.5 | 28. September 2009 |
| Ältere Version; nicht mehr unterstützt: 3.2 | 19. Oktober 2008 |
| Ältere Version; nicht mehr unterstützt: 3.1 | 29. Juni 2008 |
| Ältere Version; nicht mehr unterstützt: 3.0.2 | 4. Februar 2008 |
| Ältere Version; nicht mehr unterstützt: 3.0.1 | 5. Juli 2007 |
| Ältere Version; nicht mehr unterstützt: 3.0 | 18. Mai 2007 |
| Ältere Version; nicht mehr unterstützt: 2.5.1 | 29. Februar 2004 |
| Ältere Version; nicht mehr unterstützt: 2.5 | 29. Februar 2004 |
| Ältere Version; nicht mehr unterstützt: 2.0 | 26. Januar 2004 |
| Ältere Version; nicht mehr unterstützt: 1.5.1 | 16. Juni 2002 |
| Ältere Version; nicht mehr unterstützt: 1.5 | 6. Mai 2002 |
| Ältere Version; nicht mehr unterstützt: 1.2.0 | 19. Januar 2002 |
| Ältere Version; nicht mehr unterstützt: 1.1.0 | 4. Januar 2002 |
| Ältere Version; nicht mehr unterstützt: 1.0.2 | 11. Januar 2002 |
| Ältere Version; nicht mehr unterstützt: 1.0.1 | 4. Januar 2002 |
| Ältere Version; nicht mehr unterstützt: 1.0.0 | 30. Dezember 2001 |
Die POI-Entwicklerversion befindet sich als Java-Quellcode in einem Subversion-Repository.

### Scratchpad

Noch nicht alle POI-Komponenten sind in einem Zustand, den die POI-Entwickler für ausgereift halten. Diese Komponenten können in der weiteren Entwicklung größere Änderungen erfahren. Um dies den Anwendern gegenüber deutlich zu machen, befinden sie sich im sogenannten Scratchpad, einem Bereich, der als Spielwiese und für Unausgereiftes vorgesehen ist.