Posted on

PHPExcelをCakePHPで使ってみる(テンプレートの読み込み)

 弊社で帳票をPDFで出力する際には、大抵書式となるテンプレートファイルを先に読み込んで、必要な箇所にデータを出力して最終的に出来上がりのPDFファイルを生成という手順を踏みます。
 ですので、Excelファイルを作る際にもテンプレートの読み込みが必要だろうということで、これもサンプルを作りましたのでここに載せておきます。

 データを出力する部分とファイルに書き出す部分は同じですので、テンプレートファイルを読み込む部分を解説します。
 Excel2007形式とExcel95形式、両方まとめて載せておきます。

 まず、Excel95形式のテンプレート読み込みです。

$filename = "fruits.xls";
$uploadDir = realpath( TMP );
$uploadDir .= DS . 'excels' . DS;
$load_path = $uploadDir . $filename;
$objReader = new PHPExcel_Reader_Excel5();
$objPHPExcel = $objReader->load( $load_path );

 次は、Excel2007形式のテンプレート読み込みです。

$filename = "fruits.xlsx";
$uploadDir = realpath( TMP );
$uploadDir .= DS . 'excels' . DS;
$load_path = $uploadDir . $filename;
$objPHPExcel = PHPExcel_IOFactory::load( $load_path );

 $load_path にはテンプレートファイルのフルパスを与えてください。

 ここで帰ってきた $objPHPExcel で、データ書き込みやファイル生成を行ってください。

Posted on

PHPExcelをCakePHPで使ってみる(Excel2007形式)

 PHPExcelをCakePHPで使ってみるの記事ではExcel95形式(拡張子が.xls)のExcelファイルの出力について書きましたが、Excel2007形式(拡張子が.xlsx)の場合はどうなるのかが今回のお話です。

 Excel2007形式のファイルを出力する為のポイントはふたつです。
 ひとつ目は、出力ファイル名の拡張子を必ず「.xlsx」にしておくことです。
 ふたつ目は、出力する部分のコードを少し変えることです。
 具体的には、次のコードになります。

$objWriter = PHPExcel_IOFactory::createWriter( $objPHPExcel, 'Excel2007' );

Posted on

PHPExcelをCakePHPで使ってみる

 システムを作っていると、お客様からよく「このデータをExcelで使いたい」ということをお聞きします。
 大抵の場合CSV形式のファイルを出力して、それをExcelで読み込んで好きに加工して戴くのですが、やはりExcelの形式ではないので使い辛いと言われることがあります。
 そこで、Excelファイルを出力するようにしようということになり、PHPExcelというライブラリをCakePHPに組み込んで使うことにしました。

続きを読む PHPExcelをCakePHPで使ってみる