PHPExcelとは、PHPでエクセルファイルを
扱いやすくするためのライブラリ
PHPでEXCEL(エクセル)を使いたかったので
PHPExcelを利用したときのメモメモ
まずは、ライブラリを持ってきてと思って
Gitコマンドで持ってきたら、大ハマり。。。
git clone https://github.com/PHPOffice/PHPExcel.git
ある程度動くんだけど、罫線がどうしても引けなくて。。。
普通に、ここからダウンロードしてきましょうw
https://phpexcel.codeplex.com/
まずは、落としてきたファイルの中の
Classes/PHPExcel.php
をインクルードしておく。
この中で、Autoloader.phpを読んでるので
いろいろ一緒に読み込んでくれてる
基本的な書き方
// Excel2007形式(xlsx)テンプレートの読み込み
$reader = PHPExcel_IOFactory::createReader('Excel2007');
$excel = $reader->load($excelFileNm);
//PHPExcelの新規オブジェクト作成
$excel = new PHPExcel();
// 1枚目のシートをアクティブに
$sheet = $excel->setActiveSheetIndex(0);
// 該当行の最後のカラム位置を取得
$column = $sheet->getHighestColumn($row);
// カラムの英字を数字に変換 ※数字が0から始まるから、意図したものと1つずれる?!
$column = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn($row));
// カラムの数字を英字に変換
$colunmIdx = PHPExcel_Cell::stringFromColumnIndex($column);
// セルの書式設定
$sheet->getStyleByColumnAndRow($column, $raw)->getNumberFormat()->setFormatCode( '0.00%' );
$sheet->getStyle('A1')->getNumberFormat()->setFormatCode( '0.00%' );
// 値を書き込む
$sheet->setCellValue($selName , 'aaa');
$sheet->setCellValueByColumnAndRow($column, $row, 'aaaa');
// ウィンドウ枠の固定
$sheet->freezePane($selName);
// 罫線を引く ※ここでハマった。。。
$sheet->getStyleByColumnAndRow($column, $row)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_MEDIUM);
/* 罫線を引く場所
getLeft(); //セルの左側にボーダー
getRight(); //セルの右側にボーダー
getTop(); //セルの上部にボーダー
getBottom(); //セルの下部にボーダー
getDiagonal(); //セルに斜線
getAllBorders(); //範囲内のセルに全区切りにボーダー
getOutline(); //範囲内のセルの一番外側にボーダー
getInside(); //範囲内のセルの一番外側以外にボーダー
getVertical(); //範囲内のセルに縦線ボーダーのみ
getHorizontal(); //範囲内のセルに横線ボーダーのみ
*/
/* 線の種類 MEDIUMDASHEDくらいからよくわかんない、、、
PHPExcel_Style_Border::BORDER_NONE // なし
PHPExcel_Style_Border::BORDER_THIN // 細い
PHPExcel_Style_Border::BORDER_MEDIUM // ちょい太
PHPExcel_Style_Border::BORDER_DASHED // 破線
PHPExcel_Style_Border::BORDER_DOTTED // 点線
PHPExcel_Style_Border::BORDER_THICK // 極太
PHPExcel_Style_Border::BORDER_DOUBLE // 二重線
PHPExcel_Style_Border::BORDER_HAIR // 細い点線
PHPExcel_Style_Border::BORDER_MEDIUMDASHED // 太めの破線
PHPExcel_Style_Border::BORDER_DASHDOT // 細めの一点鎖線
PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT // 太めの一点鎖線
PHPExcel_Style_Border::BORDER_DASHDOTDOT // 細めの二点鎖線
PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT // 太めの二点鎖線
PHPExcel_Style_Border::BORDER_SLANTDASHDOT // 一点鎖線(線の切り口が斜め)
*/
// Excel2007形式で保存する
$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
$writer->save($excelFileNm);
他にもいろいろあって
かなり便利だから、機会があったら
絶対利用すべし!!

コメント