perl や PHP で Excelファイル(xlsファイル)を簡単に出力する方法
perl や PHP で、Excelファイル(拡張子が「.xls」のファイルとか)を出力するために、色々とライブラリみたいなものがあるみたいなんですが、裏技的でちょっと邪道な、もっと簡単な解決方法があります。
Excel で作った文書を保存する際に、「Webページとして保存」というメニューがあることからも想像できますが、Excelで html文書を開いたら、普通に Excel 文書として読めるんですよね。
なので、 perl の CGI や PHP で、Excel 形式で出力しようと思ったら、perl の CGI や PHP でよく出力する Content-type ヘッダ一覧 (MIME-type)を参考に、以下のようなヘッダを出力。
#-- perl の場合
print qq|Content-type: application/vnd.ms-excel\n\n|;
#-- PHP の場合
header('Content-Type: application/vnd.ms-excel');
そしてその後は、普通に html を出力すれば、勝手に Excel が開いて、Excel 文書として出力されます。
Excel を開くのではなく、ダウンロードさせたい場合は、perlやPHPでファイルのダウンロード確認ダイアログを表示させる方法を参考にすれば良いと思います。
#-- perl の場合
print qq|Content-type: application/vnd.ms-excel\n|;
print qq|Content-Disposition: attachment; filename="sample.xls"\n\n|;
#-- PHP の場合
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="sample.xls"');
なお、Excel ファイルを前述のように「Webページとして保存」すると、作成したファイルが html 文書として保存されるので、それを元に編集して perl の CGI や PHP の出力結果を用意すると良いかと思います。
Excel が吐き出す html ソースは凄まじく汚くて読み辛いですが......。
- 関連するブログ記事
-
- カテゴリー
- PHP | perl/CGI
- タグ
- CGI | Content-Disposition | Content-type | Excel | HTTPヘッダ | Internet Explorer | MIME | perl | PHP | Windows | xhtml | ダウンロード | 拡張子
- 現在位置
- TOP > Web制作技術 > perl/CGI > perl や PHP で Excelファイル(xlsファイル)を簡単に出力する方法
- 前のブログ記事
- ボタンクリックでテーブルに行を追加する JavaScript [2009年3月14日 12:55]
- 次のブログ記事
- Romeo & Juliet [2009年3月16日 23:59]







コメント(0)
コメントする