PHPExcelで格子状の罫線を引く方法
PHPプログラムからエクセルデータを生成するのに便利なライブラリ「PHPExcel」で、setBorderStyle()ではセルの上下左右(格子状)に罫線が描画されないケースがあったので、その解決方法をエントリーします。
【NG】getBorders()->getAllBorders()->setBorderStyle()で罫線を引く
$sheet->getStyle('A1:D1')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
原因は不明ですが、上記のコードを実行するとなぜか右側にしか罫線が引かれなかったり、まったく罫線が引かれない行ができたりします…。(PHPExcelのバージョンは1.8.0です)
【OK】applyFromArray()で罫線を引く
// ボーダーのデザインを定義 $borderStyle = array( 'borders' => array( 'allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN) ) ); $sheet->getStyle('A1:D1')->applyFromArray($borderStyle);
ボーダーのデザインを定義した配列をapplyFromArray()に渡すことで正しく罫線が引けました。
参考:How to do the phpexcel Outside Border – Stack Overflow
こちらもおすすめ!
1分程度でサクッと遊べる簡単なトランプのアプリをリリースしました。無料です。
通勤・通学の時間つぶしにどうぞ!
コメントを残す