2010年6月アーカイブ
弊社で帳票をPDFで出力する際には、大抵書式となるテンプレートファイルを先に読み込んで、必要な箇所にデータを出力して最終的に出来上がりのPDFファイルを生成という手順を踏みます。
ですので、Excelファイルを作る際にもテンプレートの読み込みが必要だろうということで、これもサンプルを作りましたのでここに載せておきます。
データを出力する部分とファイルに書き出す部分は同じですので、テンプレートファイルを読み込む部分を解説します。
Excel2007形式とExcel95形式、両方まとめて載せておきます。
まず、Excel95形式のテンプレート読み込みです。
ここで帰ってきた $objPHPExcel で、データ書き込みやファイル生成を行ってください。
ですので、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 で、データ書き込みやファイル生成を行ってください。
PHPExcelをCakePHPで使ってみるの記事ではExcel95形式(拡張子が.xls)のExcelファイルの出力について書きましたが、Excel2007形式(拡張子が.xlsx)の場合はどうなるのかが今回のお話です。
Excel2007形式のファイルを出力する為のポイントはふたつです。
ひとつ目は、出力ファイル名の拡張子を必ず「.xlsx」にしておくことです。
ふたつ目は、出力する部分のコードを少し変えることです。
具体的には、次のコードになります。
Excel2007形式のファイルを出力する為のポイントはふたつです。
ひとつ目は、出力ファイル名の拡張子を必ず「.xlsx」にしておくことです。
ふたつ目は、出力する部分のコードを少し変えることです。
具体的には、次のコードになります。
$objWriter = PHPExcel_IOFactory::createWriter( $objPHPExcel, 'Excel2007' );
システムを作っていると、お客様からよく「このデータをExcelで使いたい」ということをお聞きします。
大抵の場合CSV形式のファイルを出力して、それをExcelで読み込んで好きに加工して戴くのですが、やはりExcelの形式ではないので使い辛いと言われることがあります。
そこで、Excelファイルを出力するようにしようということになり、PHPExcelというライブラリをCakePHPに組み込んで使うことにしました。
大抵の場合CSV形式のファイルを出力して、それをExcelで読み込んで好きに加工して戴くのですが、やはりExcelの形式ではないので使い辛いと言われることがあります。
そこで、Excelファイルを出力するようにしようということになり、PHPExcelというライブラリをCakePHPに組み込んで使うことにしました。
PHPExcelをCakePHPで使ってみるの続きを読む
