[PHP-users 13131] Re: PHPでエクセルファイルの取扱いは実用レベル?

Y.Watanabe php-users@php.gr.jp
Fri, 07 Feb 2003 14:14:02 +0900


わたなべです。

>PHPにてエクセルファイルを取扱いと考えていますが、その
>実績はいかがなものでしょうか?

PHPのCOM関数が使えるかどうか(≒サーバがWindowsかUNIXか)
によって話がだいぶ変わるので以下はUNIX系だという仮定です。

自分が先月くらいに調べた限りでは
phpでexcelファイルを生成することができる関数/クラス群で
実用に耐えそうなのは↓だけです。
  Class: Spreadsheet_WriteExcel
  http://phpclasses.psbweb.com/browse.html/package/767.html

これをダウンロードして、htdocsに解凍して、test.phpにアクセス
してみるだけでテスト用のexcelファイルがダウンロードできるはずです。
そのexcelファイルの内容を見れば、
ご希望の実用性に耐えるかどうかたぶん判断できるでしょう。

ちなみに書式設定も計算式も使えるはずです。
日本語も試しましたがOKでした。
  (もちろんmb_convert*関数でSJISに変換する必要アリ)

ただしできあがるファイルはExcel95形式であるがゆえ、
例えば一つのセルに255byteまでしか書けないといった制限は
当然あります。

なお、このClass: Spreadsheet_WriteExcelの作者さんは、
「これはperlで有名なSpreadsheet::WriteExcelモジュールを
  php用に書き直しただけだよ」
と書いておりますので今後バージョンアップされるのかどうかは
よくわかりません。いまのバージョン自体は去年の11月,12月の
タイムスタンプになってますが。


本家である、perl版のSpreadsheet::WriteExcelモジュールは
  http://freshmeat.net/projects/writeexcel/?topic_id=66%2C78%2C131%2C809#top
にあります。こっちは数年の実績があるはずです。
  ちなみに日本語マニュアルは↓(注:ちと古い)
  http://member.nifty.ne.jp/hippo2000/perltips/Spreadsheet/WriteExcel.htm

perl版のほうはExcel97/2000対応の新バージョンが目下リリース直前の
段階にあるようです。ただしその新しいバージョンが
日本語がきちんと通るかは・・・?

また、OfficeXPシリーズになると、Excelはxml形式を読める
はずですので、phpのDOM-XML関数を使えばなんとかなるかも
しれません。もちろんExcelはXP以上を使え!ということになります。

と、いうわけで、いま現在の選択肢としては

  選択(1)Class: Spreadsheet_WriteExcelを試してみる

  選択(2)perl版のSpreadsheet::WriteExcelモジュールを使った
         perlスクリプトを書き、phpからそれをexec()やsystem()で
         呼び出して使う

  選択(3)PHPのDOM-XML関数とExcel-XPのxml形式ファイルの構造を
         勉強して、.xlsではなく.xmlファイルを生成するように
         phpを書く

といったところでしょうかね・・・。