2010年5月26日水曜日

PHP Excelで自動改行&行高さ自動調整

PHP Excelで文字の自動改行をしたい。

ここに記載されているプロパティの設定でOK。
http://phpexcel.codeplex.com/Thread/View.aspx?ThreadId=18434

$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setWrapText(true);

ただ、PHPExcelをnewするときは問題ないけれど、テンプレートファイルをロードして書き込むとテンプレートファイルの行高さがずっと保持されたままの状態になるらしい。

自動改行設定した後に行高さを調整しないとキレイに出力されない。

// テンプレートファイルの読み込み
$reader
= PHPExcel_IOFactory::createReader('Excel5');
$excel
= $reader->load(TEMPLATE_PATH);

// シートの設定
$excel
->setActiveSheetIndex(0);
$sheet
= $excel->getActiveSheet();
$sheet
->getDefaultStyle()->getFont()->setName('MS Pゴシック');
$sheet
->getDefaultStyle()->getFont()->setSize(9);
$sheet
->setTitle('sheet name');

// 書き込み
$sheet
->setCellValue('A1', 'あいうえおかきくけこさしすせそ');

// 自動改行
$sheet
->getStyle('A1')->getAlignment()->setWrapText(true);

// 行高さ設定(setRowHeightにパラメタ指定しないことで自動調整)
$sheet
->getRowDimension(1)->setRowHeight();

0 件のコメント:

コメントを投稿