ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

PHPExcel を使わず、Excelファイルを出力

PHPの環境なら、PHPExcelを使えば簡単にexcelファイルを出力できます。
PHPExcelを使わず、HTTPヘッダを一部変更すれば、Excelファイルを出力できると聞いたので、試してみました。
f:id:AJYA:20130418215232j:plain
photo credit: Collin Anderson via photopin cc

方法

HTTPヘッダとして、

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename='test.xls'");

と出力したあとに、テーブルをHTMLで出力すれば、Excelで読めるファイルがダウンロードされます。

ファイルをテキストエディタで開くとHTML形式のファイルです。

問題点1

Excel 2007で開こうとすると警告が表示されます。
Excelバイナリではないからなんでしょうね。

問題点2

HTMLファイルをExcelに読ませているので、HTMLで表現できている書式が、Excelで表示すると解釈されて消えてしまいます。

問題点2の解決方法

  1. Excel 2007で希望する書式を設定します。
  2. Web形式で保存します。
  3. 保存されたファイルのHTMLファイルを開き、書式を設定したセルのクラスを探します。
  4. CSSファイルを開き、該当のクラスをコピーして、作成中のプログラムに貼り付けます。
  5. 作成中のプログラムのtdタグにクラスの記述を追加します。


問題点1の解決方法は無いような気がしますが、Excelファイルが作成できると言っていた方に解決方法があるのか確認したいと思います。