とある案件で、ウェブサイトの表示データをExcel形式(xlsx)で出力(ダウンロード)できるようにして欲しいと注文があった。
どうしようかと思っていたら、ちょうどいいライブラリがあったので、使用方法ともどもメモ。
PHPExcel
使用したライブラリは「PHPExcel」。
名前の通り、ピュアPHPで作られたライブラリ。
最新版は、以下よりダウンロードできる。
GitHub – PHPOffice/PHPExcel
https://github.com/PHPOffice/PHPExcel
PHPExcelの使い方
インストールから実際にExcelを出力するまでの一部始終。
-
ダウンロードしたZipファイルの中身をサーバーに置く。
(例:./phpexcel/)
-
ライブラリの読み込みは、以下のコードを記入する。
<?php // ライブラリの読み込み require_once ("/./phpexcel/Classes/PHPExcel.php"); require_once ("/./phpexcel/Classes/PHPExcel/IOFactory.php"); ?>
-
実際にファイルを作成し、データを書き込むには以下のコードを記入する。
<?php // 新規ファイル作成準備 $excel = new PHPExcel(); $sheet = $excel->getActiveSheet(); // データの設定 $sheet->setCellValue('A1', 'TEST'); // Excelファイルの出力準備 header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment;filename="[filename].xlsx"'); // Excekファイルの出力(ダウンロード) $writer = PHPExcel_IOFactory::createWriter($excel, "Excel2007"); $writer->save('php://output'); // 以下は絶対必須!! exit; ?>
さいごのexit;
がないと、ダウンロードファイルが破損したりするので注意。
まとめ
すごくザックリ書いたけど、基本はこんな感じ。