実際はDBを読み込みながらセルへセット、行高さを調整...を繰り返すような処理です。
下記は簡易化しております。
$this->load->library("phpexcel");
$objReader = new PHPExcel_Reader_Excel5();
$objPHPExcel = $objReader->load("d:\\format\\format001.xls");
$test_a = "改行を含む長文テキスト";
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $test_a);
//罫線を引く
$rangestr = "A".$setrow.":F".$setrow;
$objPHPExcel->setActiveSheetIndex(0)->getStyle($rangestr)->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//行高さの自動調整
$objPHPExcel->setActiveSheetIndex(0)->getRowDimension($setrow)->setRowHeight();
//--↓↓ここから下の処理をうまく機能させたい↓↓
//高さに余裕を持たせる処理
//現在の行高さを取得
$rowHeight = $objPHPExcel->setActiveSheetIndex(0)->getRowDimension($setrow)->getRowHeight();
//加える
$rowHeight = $rowHeight +100;
//行高さを再設定
$objPHPExcel->setActiveSheetIndex(0)->getRowDimension($setrow)->setRowHeight($rowHeight);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('d:\\output\\output001.xls');
エクセル自体自動調節がうまくきかない場合があるから、文字数と改行数から必要な高さを割り出して自分でセットしたほうがいいですよ。
▽2
●
gizmo5 ●50ポイント ベストアンサー |
ここが参考になるのではないでしょうか。
http://phpexcel.codeplex.com/discussions/66215
Excel 2003 形式ではうまく動作しなくて、2007 形式だと期待通りに動作するとあります。
http://phpexcel.codeplex.com/workitem/10503
パッチは出ているようですが、こちらでは期待通りにならないとあります。
https://github.com/PHPOffice/PHPExcel/issues/165
Excel 2007 形式で試してみるのが良いと思います。