PHPからExcelファイルを作成できる PHPExcel を使ってみました。
今回のやりたい事は、AWS EC2 のパラメータ内容をExcelファイル(2007形式)に落とし込む、(とりあえずは)コマンドラインで実行するPHPスクリプトを作る事です。
その為、PHPからExcelファイルを作成できるライブラリを探して、PHPExcel を使ってみる事にしました。
簡単ではありますが、セットアップからExcelファイルを作成するところまでの手順を記載しておきます。
セットアップ
PHPExcel をセットアップする方法は簡単です。
今回の利用環境は、CentOS、PHP 5.4.17 の環境となります。
PHPExcel から現在の最新バージョンである、PHPExcel 1.7.9 (zipファイル)をダウンロードして、テキトウな場所に解凍します。
# unzip PHPExcel_1.7.9_doc.zip
解凍すると、Classes、Documentation、Examples ディレクトリと、changelog.txt、install.txt、license.txt が展開されます。
早速使ってみる
では、早速、PHPスクリプトからExcelファイルを作成してみます。
今回は、Examples ディレクトリの中にあるサンプルプログラム「01simple.php」を少し改変して使ってみたいと思います。私は、別のディレクトリにコピーして「sample.php」として改変をくわえてみました。
まず、37行目の、PHPExcel.php を include する箇所を、必要であれば実行環境のパスに合わせます。
require_once '../Classes/PHPExcel.php';
次に、88行目の、Excel 2007形式のxlsxファイルに保存する箇所を以下のように変更しました。(ファイル名はテキトウな名称にしてください。)
$objWriter->save("sample.xlsx");
あとは、今回は不要である、Excel 95 形式で保存する箇所のコードをカットしました(98行目~110行目)。
以上で、サンプルのPHPスクリプトファイルが完成です。
早速実行してみます。
# php -l sample.php No syntax errors detected in sample.php # php sample.php 05:57:37 Create new PHPExcel object 05:57:37 Set document properties 05:57:37 Add some data 05:57:37 Rename worksheet 05:57:37 Write to Excel2007 format 05:57:37 File written to sample.xlsx Call time to write Workbook was 0.0980 seconds 05:57:37 Current memory usage: 5.75 MB 05:57:37 Peak memory usage: 5.75 MB 05:57:37 Done writing files Files have been created in (sample.xlsx) #
無事実行できました。Excelファイル(拡張子 xlsx)も無事作成されており、Excelで開く事が出来ました。
PHPExcel を使うと、簡単にPHPからExcelファイルが作成できる事が確認できました。今回はここまでとなりますが、今後、色々な用途に使えそうです。
補足
PHPExcel を使う場合、phpをソースからインストールしている場合は、configure オプションで、「–enable-zip」が必要になります。-
-enable-zip の指定がないphp実行環境では、PHPExcelを使ったPHPスクリプトを実行時に、以下のエラーが発生します。
PHP Fatal error: Class 'ZipArchive' not found in /(中略)/Classes/PHPExcel/Writer/Excel2007.php on line 205 Fatal error: Class 'ZipArchive' not found in /(中略)/Classes/PHPExcel/Writer/Excel2007.php on line 205
私は、–enable-zip を指定していなかったので、configure からphpインストールをやり直して、無事にPHPExcelを使ったPHPスクリプトが実行できるようになりました。