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);
他にもいろいろあって
かなり便利だから、機会があったら
絶対利用すべし!!
コメント