Apache POI 【Jakarta POI】

概要

Apache POI(Jakarta POI)とは、Javaプログラムから、米マイクロソフト(Microsoft)社のオフィスソフトMicrosoft Office」のファイル形式を用いて文書の読み書きが行えるようにするライブラリ。

Microsoft WordやExcel、PowerPoint、Visio、Publisher、OutlookなどOfficeアプリケーションが利用するファイル形式の読み込みや書き出しができるJavaライブラリで、APIを通じて他のJavaプログラムに組み込んでその機能を利用することができる。

Office 2007以降は仕様が公開・標準化されている「OOXML」(Office Open XML)に基づくファイル形式を利用しており、Apache POIも高い互換性で対応している。これにはDOCXファイルやXLSXファイル、PPTXファイルなどが含まれる。

一方、Office 2003以前のバージョンでは独自の非公開のファイル形式を用いていたが、リバースエンジニアリングによって構造を解析するなどの手法である程度は対応している。これにはDOCファイルXLSファイルPPTファイルが含まれ、読み込みしかできない形式や、一部の機能に対応していない形式もある。

Apache POIはアパッチソフトウェア財団(ASF:Apache Software Foundation)のJava関連ソフトウェアの開発プロジェクトである「Jakartaプロジェクト」のサブプロジェクトの一つであり、Apacheライセンスに基いてオープンソースソフトウェアとして公開されている。

POI」の名称は、初期のOfficeのファイル形式が互換ソフトなどを開発されにくいように意図的に複雑化されていたが、解析可能な程度の複雑さだったことを評して “Poor Obfuscation Implementation” (不完全な難読化実装)と呼んだことに由来するが、現在では公式には何の略称でもないとされている。

(2023.8.17更新)