Apache POIは、
Apacheソフトウェア財団が提供する、
Microsoft Office形式のファイルを
Javaで扱うためのオープンソース
ライブラリです。Word、Excel、PowerPointといった形式のファイルを読み書きする機能を提供し、
JavaアプリケーションでのOfficeファイル操作を可能にします。
名称の由来
「POI」という名称は、もともと
Microsoft Officeのファイル形式が複雑で分かりにくいことから、「Poor Obfuscation Implementation(質の悪い難読な実装)」という皮肉を込めた
頭字語に由来します。このユーモラスな由来は、かつてはプロジェクト内で広く知られていましたが、ビジネスシーンでの利用を意識し、公式ウェブサイトからは削除されました。また、ハワイの伝統的な食べ物である「Poi」も由来の一つとして挙げられています。ハワイの言い伝えでは、Poiを食べ続けると巨人のようになるとも言われています。
Apache POIは、バージョン3.5からISO/IEC 29500で標準化された
Office Open XML(OOXML)形式のファイルに対応しています。このOOXML対応は、Sourcesense社が大きく貢献しています。Sourcesenseは、
マイクロソフトから委託を受けてオープンソース開発を行う企業であり、その関係から、POIのOOXMLサポートに関して特許に関する議論も起こりました。一部のPOI開発者は、
マイクロソフトのOpen Specification Promiseに関するPOIのOOXMLにおける特許保護について懸念を示しています。
サブコンポーネント
Apache POIは、複数のサブコンポーネントから構成されています。
POIFS (Poor Obfuscation Implementation File System): Microsoft OLE 2複合ドキュメント形式を読み書きするためのコンポーネントです。すべてのMicrosoft Officeファイルはこの形式であるため、POIFSは他のPOIコンポーネントの基盤となっています。様々なファイル形式の読み込みにも利用されています。
HSSF (Horrible SpreadSheet Format):
Microsoft ExcelのXLS形式ファイルを扱うコンポーネントです。Excel 97以降のファイルを読み書きできます。
XSSF (XML SpreadSheet Format): Office Open XML形式のExcelファイル、つまりExcel 2007以降のxlsxファイルを扱います。
HWPF (Horrible Word Processor Format): Microsoft WordのDOC形式ファイルを扱うコンポーネントです。Word 97以降のファイルを読み書きできます。
XWPF (XML Word Processor Format): Office Open XML形式のWordファイル、つまりWord 2007以降のdocxファイルを扱います。
HSLF (Horrible Slide Layout Format):
Microsoft PowerPointのPPT形式ファイルを扱うコンポーネントです。PowerPoint 97以降のファイルを読み書きできます。
XSLF (XML Slide Layout Format): Office Open XML形式のPowerPointファイル、つまりPowerPoint 2007以降のpptxファイルを扱います。
HPSF (Horrible Property Set Format):
Microsoft Officeドキュメントのプロパティ情報を読み取るコンポーネントです。
HDGF (Horrible DiaGram Format): Microsoft Visio形式のファイルを扱うコンポーネントです。現在、読み取りのみサポートしています。
HPBF (Horrible PuBlisher Format): Microsoft Publisher形式のファイルを扱うコンポーネントですが、開発は初期段階で一部の読み取りのみ可能です。
HSMF (Horrible Stupid Mail Format): Microsoft OutlookのMSG形式ファイルを扱うコンポーネントで、現在読み取りのみ可能です。
POIライブラリは、Rubyの拡張としても提供されており、Ruby環境でも利用できます。
サブプロジェクト
Apache POIに関連するサブプロジェクトとして、XMLBeansがあります。XMLBeansは、JavaとXMLデータバインディングを容易にするためのフレームワークです。
関連事項
Apache POIと関連性の高い技術や製品には、以下のようなものがあります。
Apache
Jakarta Project
XMLBeans
Microsoft Excel
Microsoft Word
Microsoft PowerPoint
Microsoft Outlook
Microsoft Visio
Microsoft Publisher
Office Open XML
これらの技術や製品は、Apache POIの理解を深める上で参考になります。
外部リンク
公式ウェブサイト
Apache POI (日本語) - ウェイバックマシン(2012年1月29日アーカイブ分) -
ウェイバックマシン(2012年1月29日アーカイブ分))
これらの外部リンクは、Apache POIに関する詳細な情報や過去の情報を得るために役立ちます。