[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を書く
といったところでしょうかね・・・。