Search jakarta

Jakarta POI - MS-Excel,Word を Java 環境で (XML処理)

最新ニュース

POIに関するニュースは、全て、poi news weblogにて見ることが出来ます。

手っ取り早く洒落たRSSフィードで、あるいはこちらで、POIに関するニュースを読むことができます。Blojsomプロジェクトという、これほどすばらしいソフトウェアを書く素敵な人々に心から感謝しています。貴方の好むアグリゲータを使って投稿し、重要なPOIに関するニュース、イベント(リリースや開発記事などといった)等を常に最新のものにしていって下さい。

POIの最新の開発版リリースは、バージョン2.0R.C.です。バイナリの頒布版は、こちら で手に入れることができます。また、ソース版の頒布版は、こちらからとなります。

POIの用途

POIプロジェクトは、Microsoft OLE 2複合ドキュメント形式に基づいた様々なファイル形式を100%Javaで取り扱うためのAPI群から成り立つプロジェクトです。

Microsoft OLE 2複合ドキュメント形式には、 XLS や DOC といった殆どのMicrosoft Office ファイルが含まれます。

原則として、出来る限り他の(Jakartaなどの)プロジェクトと連携し、この機能を提供していきたいと考えています。例えば:Cocoonにて、我々のプロジェクト由来の generator や serializer がすぐに見つかるかと思います - OpenOffice.org(訳注:Microsoft Office製品と互換性をある程度有するOfficeスイートで、オープンソースとして公開され開発されている、無料のオフィスソフトウェア - Javaを基調としている)とは、XLS形式のドキュメント化で協業しています -  Luceneではファイル形式の解析用インタプリタ (interpreter)が見つかります。実務的なレベルを満たすならば、POIを直接利用にするよう、それらのプロジェクトに対して当方からコンポーネントを提供します。

どのような場面でPOIを使うのでしょうか?

コンポーネント(訳注:サブプロジェクトによるコンポーネント)レベルで、私達はこの問題に取り組んでいます。POIは、サブプロジェクトを含めた全体のプロジェクトに関連しています。

では、何故、 POIFS や HSSF を使うのでしょうか?

OLE 2 複合ドキュメント形式 (MFCを使用してかかれているかもしれません)の文書をJavaで読む必要がある場合、POIFSを使うことでしょう。あるいは、OLE2複合ドキュメント形式のファイルを書き込み、Windowsプラットフォーム上で動くソフトウェアと相互作用させる必要がある場合も同様かもしれません。私達は、POIFSが現在最も完璧で正しいやり方だとただ自慢しているわけではありません。

XLS (Excel) ファイルをJavaを使って読み書きする際にHSSFを使用します。このAPIを使って、シートを読みこんだり修整したりする事もできます。今のところは、シートに書き込みを行う処理が最も完成されていますが。

POI とはどういう意味でしょうか?

POI は Poor Obfuscation Implementation (不十分で曖昧な実装) を表しています。どうして私達がこのような軽蔑的な言葉から命名したのでしょうか?Microsoft OLE 2 複合ドキュメント形式は、不十分なものだと思われるものだからです。Microsoft OLE 2 複合ドキュメント形式は、古いDOS FATファイルシステムに本質的によく似て設計された圧縮形式です。Redmond(訳注:米 Microsoftの本拠地のある場所、つまり、Microsoftの事を指します) は、tar や gzip、zip、arcを使う代わりに、独自の圧縮形式を開発することを選択しました。その圧縮形式は、標準暗号技術や圧縮技術をあまり使っておらず、(アーカイブファイルの中への)追加が容易ではなく、そして、断片化しやすいものとなってしまいました。

Poiは、ハワイの珍味の事でもあります。 Merriam Webster's dictionaryによれば: "ハワイ料理で、タロイモの根を煮てすりつぶし捏ねてペースト状にしたものであり、発酵させた時の酸っぱさが益々良いです"  - 何か、このファイル形式に奇妙にも当てはまっているように思えてなりません。(訳注:ちなみに、この珍味の味は、きわめて不味いそうですが、栄養価が高く、これを食べつづけているハワイ人は--巨人--になるそうです。この点でも...、この名前がピタリと当てはまるのかも知れません....)

従って、もし貴方が上の頭文字語(Poor Obfuscation Implementation)を気に入れば、POIはその頭文字語だと思って結構ですし、もしそれが嫌だと思えば(訳注:Microsoft製品が特に好きな人は)プロジェクトの名前は、上記の珍味 "Poi"の名前だと思って結構です。もし、貴方が、上記頭文字語を好き/嫌いであるかを表明したい場合、プロジェクトを言及する際にそれに応じて「POI」あるいは 「Poi」を使用すると良いでしょう。

コンポーネント

概要

POI がExcelファイルを書き込みを行うと一般的に勘違いされていますが、POIはプロジェクトの名称です。POI には、いくつかのコンポーネント群があります。そして、其のうちの一つであるHSSF がExcelファイルに書き込みを行います。以下、POIプロジェクト内の全てのコンポーネントの、簡単な要約と目的について記述します。

POIFS (POI Filesystem)

POIFSは、このプロジェクト全体の中で、最も古く、最も安定しているコンポーネントです。読み書きの両方の機能を提供します。定義上、このプロジェクト全体の中の全てのコンポーネントが最終的にはこれに依存しています。より詳しい情報は、 POIFSプロジェクトページをご覧下さい。

HSSF

HSSF は、100%Javaによる、 Microsoft Excel 97(-2002) ファイル形式(BIFF8)に対する移植です。読み書き両方が可能です。詳細は、 HSSFプロジェクトページをご覧下さい。

HWPF

HDF は、100%Javaによる、 Microsoft Word 97ファイル形式に対する移植です。 読み書き両方が可能です。詳細は、HDFプロジェクトページをご覧下さい。このコンポーネントは、まだデザインの初期段階です。

HPSF

HPSF は、100%Javaによる、 OLE2プロパティセット形式に対する移植です。プロパティセットは、文書のプロパティ(題名、筆者、最終更新日など)を保存する際に多く利用されます。しかし、同様に、プロパティセットは、アプリケーション内で特定の目的の為に使用される場合もあります。現在のところ、HPSFでは、プロパティの読み込みの機能しかありません。詳細は、 HPSFプロジェクトページをご覧下さい。

HSSF Serializerはどうなったの?

Sourceforgeで開発した最後のリリース版(バージョン1.0)であるHSSF Serializer は、Cocoonプロジェクトに寄付されました。バージョン2.0.2から使用可能となっています。

投稿・貢献

このプロジェクトに投稿したいとお考えですか?もし思って下さるなら、大変素晴らしい事です。いくつかの方面で、熱狂的でハードワークを苦としない有能な皆さんを求めています。1つは、バグレポートと機能要求です。次に、ドキュメントです。私達は、もし批評があったり、投稿したいと考えたり、ドキュメントをより良くしたいと考えたりした場合、その意向に従います。HSSFファイル形式に関するドキュメントを特に切望しています。最後に(本当はもっとありますが)、Microsoftのファイル形式をキャラクタ化し粉々にするため、いくつかのバイナリコーダー(Java用)を使用していますが、Javaプラットフォームに新しい(訳注:PowerPoint等を指していると思われます)ものをリリースするお手伝いをお願いしたいと切に思っています!

そこで、もし興味を持ち、時間があり、準備が整えば、メーリングリストに参加してみて下さい。私達は喜んでこのプロジェクトを始めるお手伝いをいたします。(訳注:本当に親身に色々とサポートしてくれます)

by Andrew C. Oliver, Glen Stampoultzis, Avik Sengupta