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に関する詳細な情報や過去の情報を得るために役立ちます。