Apache POI

Apache POIは、Apacheソフトウェア財団が提供する、Microsoft Office形式のファイルをJavaで扱うためのオープンソースライブラリです。Word、Excel、PowerPointといった形式のファイルを読み書きする機能を提供し、JavaアプリケーションでのOfficeファイル操作を可能にします。

名称の由来



「POI」という名称は、もともとMicrosoft Officeのファイル形式が複雑で分かりにくいことから、「Poor Obfuscation Implementation(質の悪い難読な実装)」という皮肉を込めた頭字語に由来します。このユーモラスな由来は、かつてはプロジェクト内で広く知られていましたが、ビジネスシーンでの利用を意識し、公式ウェブサイトからは削除されました。また、ハワイの伝統的な食べ物である「Poi」も由来の一つとして挙げられています。ハワイの言い伝えでは、Poiを食べ続けると巨人のようになるとも言われています。

Office Open XMLのサポート



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

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。