POI is open source software that provides Java APIs for reading and writing files in the file format of Microsoft Office such as Word and Excel. It started as part of the Jakarta project and is now an Apache top-level project.
The name was originally an acronym for "Poor Obfuscation Implementation".
The Apache POI project contains the following sub-components:
- POIFS ( Poor Obfuscation Implementation File System): This component reads and writes files in Microsoft's OLE 2 Compound Document Format. When OLE 2 Compound Document Format is a file system, in which the data of a Microsoft Office document are stored in the form of files. The word obfuscation alludes to the fact that this file system is somewhat obscured.
- HSSF ( Horrible Spreadsheet Format ) and XSSF: This component reads and writes files in Excel format ( Excel 97, Excel XP, Excel 2003, Excel 2007, Excel 2008).
- HPSF ( Horrible Property Set Format ): This component reads and writes information about the document properties of a file in Microsoft Office format (" File → Properties ").
- HWPF ( Horrible Word Processor Format ) and XWPF: This component reads and writes files in Word format ( Word 97, Word XP, Word 2003, Word 2007). The component is located in the scratchpad ( see below).
- HSLF ( Horrible Slide format) and XSLF: This component reads and writes files in PowerPoint format ( PowerPoint 97, PowerPoint XP, PowerPoint 2003). It is located in the scratchpad ( see below).
- HDGF ( Horrible diagram format): This component reads files in Visio format ( Visio 97 Visio XP, Visio 2003, Visio 2007). A describe the files is not possible. The component is located in the scratchpad ( see below).
- HSMF: Reads files in Outlook format.
The POI developer version is a Java source code into a Subversion repository.
Not all POI components are in a condition to keep the POI developer for mature. These components may experience greater changes in the further development. To make this clear to the users over, they are in the so-called Scratchpad, an area which is provided as a playground and for Unripe.