【PHPExcel】シートをコピーして追加する

前の記事とかで紹介していたPHPExcel。今のバージョンは1.6.5

Excelでテンプレートを用意しといて、件数が多くなった場合に現在のシートをコピーして別シートに追加しようと、その方法を調査したときのメモ。

サンプルコード。

$objSheet = $objPHPExcel->getActiveSheet();
$objSheet_copy = $objSheet->copy();
$objSheet_copy->setTitle("page2");
$objPHPExcel->addExternalSheet($objSheet_copy);

Google先生に聞いてみてもサンプルコードがなかったので、ソースを解析してこの方法を発見。

コピーしたシートに移動する場合は

$objSheet = $objPHPExcel->getSheetByName("page2");

$objSheet = $objPHPExcel->getSheet(1);

を利用する。

 

<2010/06/08 追記>

バージョン1.7.3にバグがあってaddExternalSheetが動かない。普通にaddSheetをやれば大丈夫っぽい。

$objSource = $this->sheet->copy();
$objSource->setTitle('source');
$objSource = $this->excel->addSheet($objSource, 0);
//コピー元は隠す
$objSource->setSheetState(PHPExcel_Worksheet::SHEETSTATE_HIDDEN);

コメント

このブログの人気の投稿

【.NET】DataGridViewを選択した際に背景色を変更しない

Can't open PID file /var/run/nginx.pid (yet?) after start: Too many levels of symbolic links

【PostgreSQL】ROWNUMのように行番号(現在行)を取得するROW_NUMBER