2010年6月17日木曜日

PHPExcelスタイルのコピー

テンプレート(ひな形)となるExcelを用意して、そこにデータを出力しようとしてますが
データが可変のため、テンプレート上に装飾した罫線や色をデータにあわせ拡張擦る必要があります。
そこで、テンプレートの書式(スタイル)をデータにあわせコピーすることで対応できます。

// A1のスタイルをB1にコピー
$sheet = $this->excel->getActiveSheet();
$style = $sheet->getStyle('A1');
$sheet->duplicateStyle($style, 'B1');



基本はこれですが、領域を一気にコピーする場合は下記のよにする


$sheet = $this->excel->getActiveSheet();
// AからZまでの文字番号をord()で取得してインクリメント
for ($char = ord('A'); $char <= ord('Z'); $char++) {
$style = $sheet->getStyle($char . '1');
// 生成された文字番号からchr()で文字列に戻す
$sheet->duplicateStyle($style, chr($char) . '2');
}



<参考URL>
http://blog.asial.co.jp/595

0 件のコメント:

コメントを投稿