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分程度でサクッと遊べる簡単なトランプのアプリをリリースしました。無料です。
通勤・通学の時間つぶしにどうぞ!


Tweet about this on TwitterShare on Facebook0Share on Google+0Pin on Pinterest0

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です