PHPExcelの使い方メモ
投稿日:
PHPでExcelを生成できる『PHPExcel』の使い方メモ
※実際に私が使ったものをメモしているだけなので、機能を網羅している訳ではないです。かしこ。
インストールはcomposerを使うか、圧縮ファイルをダウンロードしてきて
適当なディレクトリに解凍します。
あとは以下をrequireするだけ。
/格納したパス/PHPExcel/Classes/PHPExcel.php
/格納したパス/PHPExcel/Classes/PHPExcel/IOFactory.php
実際のソースコードは以下の通り
/**
* PHPExcelの新規オブジェクト作成
*/
$excel = new PHPExcel();
/**
* シートを作成してシート名を変える
*/
$sheetIndex = 0; // シート番号は0から
$excel->setActiveSheetIndex($sheetIndex);
$sheet = $excel->getActiveSheet();
$sheet->setTitle('SampleSheet01');
/**
* セルにデータを入力する
*/
// 基本的な入力
$rowCnt = 1; // 行番号は1から
$clmCnt = 0; // 列番号は0から
$text = 'セルに書き込む内容だよ';
$sheet->setCellValueByColumnAndRow($clmCnt, $rowCnt, $val);
// 文字列型で入力
$rowCnt++; // 1行下に移動
$clmCnt++; // 1列右に移動
$text = '000001'; // 文字列型にしないと、左記は「00001」ではなく「1」になってしまう
$sheet->setCellValueExplicitByColumnAndRow($clmCnt, $rowCnt, $val, PHPExcel_Cell_DataType::TYPE_STRING);
/**
* セルの書式設定
*/
// シートのデフォルトフォントを設定する
$sheet->getDefaultStyle()->getFont()->setName('MS Pゴシック')->setSize(11);
// 背景色を設定
$bgcolor = '000000'; // 16進数で指定
$sheet->getStyleByColumnAndRow($clmCnt, $rowCnt)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$sheet->getStyleByColumnAndRow($clmCnt, $rowCnt)->getFill()->getStartColor()->setRGB($bgcolor);
// 文字色を設定
$fontcolor = 'FFFFFF'; // 16進数で指定
$sheet->getStyleByColumnAndRow($clmCnt, $rowCnt)->getFont()->getColor()->setARGB($fontcolor);
// 太字にする
$sheet->getStyleByColumnAndRow($clmCnt, $rowCnt)->getFont()->setBold(true);
// セル(行列番号指定)の上だけに罫線(二重線)を引く
$sheet->getStyleByColumnAndRow($clmCnt, $rowCnt)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_DOUBLE);
// セル(レンジ指定)の周り全てに罫線(単一線)を引く
$sheet->getStyle('A1:B3')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
// 列の幅を指定する
$sheet->getColumnDimension('A')->setWidth(14.5);
// 列の幅を自動調整する(※これで効くはずなんですが、効かない事が多々ある)
$sheet->getColumnDimension( PHPExcel_Cell::stringFromColumnIndex($clmCnt))->setAutoSize(true);
以上