Apache POI

（アパッチ・ポイまたはピーオーアイ）はApacheソフトウェア財団のプロジェクトで、WordやExcelといったMicrosoft Office形式のファイルを読み書きできる100% Javaライブラリとして提供されている。

名称の由来 
POIという名称は、Microsoft Officeのファイル形式をリバースエンジニアリングした際、その形式が意図的に、しかも中途半端に分かりにくくされていたため、皮肉を込めて "" (質の悪い難読な実装) と呼んだものの頭字語に端を発している。このようにユーモラスな正式名称を当てはめる方法はかつていろいろなサブプロジェクトに見られたが、ユーモアを不適切と捉えるビジネス界への進出を意識し、公式ウェブページからは削除されている。もうひとつの由来は、ハワイの珍味Poiから来た。ハワイ人がこれを食べ続けると巨人になるとも言われている。

Office Open XMLのサポート 
バージョン3.5からISO/IEC 29500 Office Open XML形式のファイルに対応している。
OOXMLへの対応は、Sourcesenseが貢献している。
Sourcesenseは、前記の貢献をするためのマイクロソフトから委託を受けたオープンソース企業である。
この関係は論争を促し、一部のPOI参加者は、マイクロソフトのOpen Specification Promiseに関するPOI OOXMLの特許保護を問う者もいる。

サブコンポーネント 
Apache POIプロジェクトは、次のようなサブコンポーネントから成る。

 POIFS () - Microsoft OLE 2複合ドキュメント形式を読み書きするコンポーネント。すべてのMicrosoft OfficeファイルはOLE 2ファイルであるため、POIFSは他のPOI構成要素の基礎となっている。そのためPOIFSは、明示的にPOIで書かれたモジュール以外にも、さまざまな種類のファイルを読むのに使われている。
 HSSF () - Microsoft Excel (XLS) 形式のファイルを扱う。Excel 97以降のファイルを読み書きできる。このファイル形式は、BIFF 8形式として知られている。フィルターやビューを含むシートを開けない。
 XSSF () - Office Open XML Workbook形式のファイルを扱う。Excel 2007で採用されたOOXML形式のファイルを読み書きできる。
 HWPF () - Microsoft Word (DOC) 形式のファイルを扱う。Word 97以降のファイルを読み書きできる。Word 95以前の形式も限定的に読むことができる。
 XWPF () - Office Open XML Document形式のファイルを扱う。Word 2007で採用されたOOXML形式のファイルを読み書きできる。
 HSLF () - Microsoft PowerPoint (PPT) 形式のファイルを扱う。PowerPoint 97以降のファイルを読み書きできる。
 XSLF () -  Office Open XML Presentation形式のファイルを扱う。PowerPoint 2007で採用されたOOXML形式のファイルを読み書きできる。
 HPSF () - Microsoft Officeのドキュメントサマリーを読むコンポーネント。ドキュメントサマリーとは、主にOfficeアプリケーションのメニューバーから「ファイル」→「プロパティ」で見られる情報のこと。
 HDGF () - Microsoft Visio形式のファイルを扱う。現在は読み取りのみ可能。
 HPBF () - Microsoft Publisher形式のファイルを扱う。現在は開発初期段階にあって、ファイル内の一部の読み取りに限られている。
 HSMF () - Microsoft Outlook (MSG) 形式のファイルを扱う。現在はファイルの読み取りのみ可能。

POIライブラリは、Rubyの拡張としても提供されている。

サブプロジェクト 
 XMLBeans  JavaとXMLデータバインディングとの変換を行うフレームワーク。。

脚注

関連項目 
 Apache Jakarta Project
 XMLBeans
 Microsoft Excel
 Microsoft Word
 Microsoft PowerPoint
 Microsoft Outlook
 Microsoft Visio
 Microsoft Publisher
 Office Open XML

外部リンク 
 
 

オープンソースソフトウェア
コンピュータのユーザインタフェース
Javaプラットフォーム
POI
ライブラリ (プログラミング)