FIELD NOTES: 書を持って街へ出よう

合同会社フィールドワークス プログラマ兼代表のブログ

オープンソースのExcel出力ライブラリ

Excelドキュメントと同様に,帳票出力の手段としてExcelを利用する方法も相変わらず人気があるようです。

Excel帳票を使用する際にはいくつか気をつけなければいけない事項があると思いますが,社内システムなどで既にMS Officeがインストールしてあり,かつ使用するプリンタが特定できる(もしくは印刷品質にはあまりこだわらない)のであれば,悪くない選択だと思われます。

【Excel帳票を選択する際の検討事項】

  • クライアントPCにExcelがインストールされているか?
  • プリンタ環境の違いによって改ページ位置などがずれることがある。
  • 特殊なフォント(外字フォント,OCRフォントなど)を必要としないか?
  • ユーザ側でのExcelの二次加工を許可するのか(禁止するのなら,パスワードで保護するなどの対策が必要)?

調べてみると,オープンソースのライブラリもいくつか存在するようなので,できるだけ集めてみました。
サーバサイドでOLEオートメーションを利用する方法は技術的にもライセンス的にも問題が多そうなので(Office のサーバーサイド オートメーションについて),OLEオートメーションを使わずにExcelファイルを直接読み書きできるものに限定しています。

Apache POI

http://poi.apache.org/

  • JavaからMS Officeのドキュメント(Excel, Word等)を操作するためのAPIを提供。
  • Apache License 2.0 ライセンス

ExCella

http://excella-core.sourceforge.jp/
http://sourceforge.jp/projects/excella-core/

  • 株式会社ビーブレイクシステムズがOSSとして公開しているExcel帳票ライブラリ
  • 内部的にApacheのPOIを利用し,高レベルAPIを提供している。
  • LGPLライセンス

Java Excel API

http://jexcelapi.sourceforge.net/

JODReports

http://jodreports.sourceforge.net/

PHPExcel

http://phpexcel.codeplex.com/

  • Excel 2007形式のファイルを操作
  • LGPLライセンス

pyExcelerator

http://pypi.python.org/pypi/pyExcelerator/

python-excel

http://www.python-excel.org/

Spreadsheet

http://rubyforge.org/projects/spreadsheet/

  • RubyからExecelファイルを操作するライブラリ
  • GPLv3 ライセンス

Spreadsheet::WriteExcelおよびSpreadsheet::ParseExcel

http://search.cpan.org/dist/Spreadsheet-WriteExcel/
http://search.cpan.org/dist/Spreadsheet-ParseExcel/

  • Perlで書かれたExcelライブラリ
  • The Perl 5 License (Artistic 1 & GPL 1)

RAA - parseexcel

http://raa.ruby-lang.org/project/parseexcel/

  • Spreadsheet::ParseExcelのRubyポート