インソースマーケティングデザイン
2017.02.02 システム
[PHP] PHPExcelでExcelファイルを出力してみよう(応用)
こんにちは。エンジニアの高田です。
年が明けてからツイていません…。
なので先日厄払いにいきました。神頼みです。
さて前回は、PHPExcelを使ってExcelファイルを出力し、ダウンロードする方法を紹介しました。
PHPExcelのインストール方法なども紹介しましたので、基本的なことは前回の内容を参照してください。
(前回)[PHP] PHPExcelでExcelファイルを出力してダウンロードしてみよう(基本)
今回は、PHPExcelを使用してどのように値を設定するのか、どのように罫線をひくのかなど、よく使いそうな内容を紹介します。
目次
(PHPExcel)セルに値を設定する
$objExcel = new PHPExcel();
$objExcel->setActiveSheetIndex(0);
$objSheet = $objExcel->getActiveSheet();
// A1セルに「テスト」という文字列を設定
$objSheet->setCellValue('A1', 'テスト');
// A1セルに「テスト」という文字列を設定
// 列・行番号でセルを指定
$objSheet->setCellValueByColumnAndRow(0, 1, 'テスト');
// 出力データ配列をA1セルから設定
$data = array();
$data[] = array('1行目', 'テスト');
$data[] = array('2行目', 'テスト');
$objSheet->fromArray($data, null, 'A1');
(PHPExcel)フォント・サイズを指定する
$objExcel = new PHPExcel();
$objExcel->setActiveSheetIndex(0);
$objSheet = $objExcel->getActiveSheet();
// デフォルトフォント設定(シートのデフォルトフォントをMS Pゴシック 11ptとする)
$objSheet->getDefaultStyle()->getFont()->setName('MS Pゴシック' )->setSize(11);
// セルのフォント設定(A1セルのフォントをMS Pゴシック 11ptとする)
$objSheet->getStyle('A1')->getFont()->setName('MS Pゴシック' )->setSize(11);
// 範囲セルのフォント設定(A1~C1セルのフォントをMS Pゴシック 11ptとする)
$objSheet->getStyle('A1:C1')->getFont()->setName('MS Pゴシック' )->setSize(11);
// セルのフォント設定(A1セルのフォントをMS Pゴシック 11ptとする)
// 列・行番号でセルを指定
$objSheet->getStyleByColumnAndRow(0, 1)->getFont()->setName('MS Pゴシック' )->setSize(11);
(PHPExcel)罫線を引く
$objExcel = new PHPExcel();
$objExcel->setActiveSheetIndex(0);
$objSheet = $objExcel->getActiveSheet();
// A1~C1セルの上下左右全てに罫線を引く
$objSheet->getStyle('A1:C1')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
// 罫線の色(赤)を設定する
$objSheet->getStyle('A1:C1')->getBorders()->getAllBorders()->getColor()->setRGB('ff0000');
// A1セルの上に罫線を引く
$objSheet->getStyle('A1')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
// A1セルの下に罫線を引く
$objSheet->getStyle('A1')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
// A1セルの左に罫線を引く
$objSheet->getStyle('A1')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
// A1セルの右に罫線を引く
$objSheet->getStyle('A1')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
(PHPExcel)セルに背景色をつける
$objExcel = new PHPExcel();
$objExcel->setActiveSheetIndex(0);
$objSheet = $objExcel->getActiveSheet();
// A1~C1セルの背景色(黄色)をつける
$objSheet->getStyle('A1:C1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objSheet->getStyle('A1:C1')->getFill()->getStartColor()->setRGB('ffff00');
(PHPExcel)行の高さを設定する
$objExcel = new PHPExcel();
$objExcel->setActiveSheetIndex(0);
$objSheet = $objExcel->getActiveSheet();
// 1行目の高さを27ptに設定する
$objSheet->getRowDimension(1)->setRowHeight(27);
(PHPExcel)列の幅を設定する
$objExcel = new PHPExcel();
$objExcel->setActiveSheetIndex(0);
$objSheet = $objExcel->getActiveSheet();
// A列の幅を50ptに設定する
$objSheet->getColumnDimension('A')->setWidth(50);
// A列の幅を50ptに設定する(列番号で指定)
$objSheet->getColumnDimensionByColumn(0)->setWidth(50);
// A列の幅を50ptに設定する(列番号で指定)
$objSheet->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex(0))->setWidth(50);
他にも色々できますが、とりあえず良く使うものだけ紹介しました。
ではまた。