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 で、データ書き込みやファイル生成を行ってください。