Excelファイルの書き出し1
MicrosoftのExcelファイルをPHPのPEARを使って自動作成するスクリプトを紹介します。
データベースの内容を「Excelでダウンロード出来たら便利なのになぁ」ってことが多々あるのですが、このオブジェクトを使えば何とかなりそうです^^;
現時点でβ版なので、機能的な不足やバグなどがあるかもしれませんが、簡単な表を発行したい場合などに使えます。
尚、PEARとSpreadsheet_Excel_Writerのインストール等と本家PEARサイトをご参照下さい。
PEARのSpreadsheet_Excel_Writerを呼び出して、オブジェクトを変数に格納します。
require_once("Spreadsheet/Excel/Writer.php");
$excel = new Spreadsheet_Excel_Writer();
ファイルの名前を指定します。
$excel->send("test.xls");
Excelのシート番号を指定します。
$sheet = $excel->addWorksheet("myTest");
writeメソッドを使って、「mySheet」の各シートに書き込みます。
第1引数に行番号、第2引数に列番号を記述し、第3引数に文字列を記入します。
ただし、第3引数の文字列に日本語を使用する場合はShift_JISに変換してから挿入します。
write(int $row, int $col, mixed $token [, mixed $format=0]);
$row:行番号
$col:列番号
$token:書き込む文字列(Shift_JIS)
$format:フォーマット識別子
$sheet->write(0, 0, mb_convert_encoding("文字列", "SJIS", "auto"));
書き込みが全て終わったら最後にcloseメソッドを使ってオブジェクトを閉じます。
$excel->close();
このスクリプトを実行するとサーバー上に保存するのではなく、その場でダウンロードされました。
/***
* Excel用データダウンロードテスト
*/
require_once("Spreadsheet/Excel/Writer.php");$excel = new Spreadsheet_Excel_Writer();
$excel->send("test.xls");$sheet = $excel->addWorksheet("myTest");
$sheet->write(0, 0, mb_convert_encoding("名前", "SJIS", "auto"));
$sheet->write(0, 1, mb_convert_encoding("職業", "SJIS", "auto"));
$sheet->write(1, 0, mb_convert_encoding("ピヨヒコ", "SJIS", "auto"));
$sheet->write(1, 1, mb_convert_encoding("WEBプログラマー", "SJIS", "auto"));
$sheet->write(2, 0, mb_convert_encoding("テスト太郎", "SJIS", "auto"));
$sheet->write(2, 1, mb_convert_encoding("WEBデザイナー", "SJIS", "auto"));$excel->close();
上記のスクリプトの実行結果は以下の通りです。
Excelファイルをダウンロードする
Spreadsheet_Excel_Writerには、他にも文字の大きさを変えたり枠線を引いたり等の機能もあります。
これらは、次回の「Excelファイルの書き出し2」でご紹介します。
| 固定リンク | コメント (0) | トラックバック (0)
