ここではPHPExcelを使ってExcelファイルを出力していきます。
PHPExcelをダウンロード
http://phpexcel.codeplex.com/
サンプルソース
<?php require_once 'PHPExcel.php'; require_once 'PHPExcel/Writer/Excel5.php'; require_once 'PHPExcel/IOFactory.php'; $ex = new PHPExcel(); $sheet = $ex->getActiveSheet(); // Excelファイル読み込み Excel5 // $reader = PHPExcel_IOFactory::createReader('Excel5'); // $ex = $reader->load("include.xls"); // $sheet = $ex->getActiveSheet(); // Excelファイル読み込み Excel2007 // $reader = PHPExcel_IOFactory::createReader('Excel2007'); // $ex = $reader->load("include.xls"); // $sheet = $ex->getActiveSheet(); // シートタイトル設定 $sheet->setTitle('シート1'); // フォント設定 $sheet->getDefaultStyle()->getFont()->setName('MS ゴシック'); // フォントサイズ設定 $sheet->getDefaultStyle()->getFont()->setSize(11); // 書き込み $sheet->setCellValue('A1', 'A1に書き込み'); $sheet->setCellValueByColumnAndRow(1, 2, 'B2に書き込み'); // C1をセンター揃え $sheet->setCellValue('C1', 'C'); $sheet->getStyle('C1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // 背景色 $sheet->getStyleByColumnAndRow(0, 2)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $sheet->getStyleByColumnAndRow(0, 2)->getFill()->getStartColor()->setRGB('000000'); // 文字色 A1 $sheet->getStyleByColumnAndRow(0, 1)->getFont()->getColor()->setRGB('00ffff'); // 罫線 $line = array( 'borders' => array( 'top' => array('style' => PHPExcel_Style_Border::BORDER_THIN), 'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN), 'left' => array('style' => PHPExcel_Style_Border::BORDER_THIN), 'right' => array('style' => PHPExcel_Style_Border::BORDER_THIN) ) ); $sheet->getStyle('D1')->applyFromArray($line); $sheet->getStyleByColumnAndRow(4, 1)->applyFromArray($line); // Excel 2007 形式で保存 // $writer = PHPExcel_IOFactory::createWriter($ex, 'Excel2007'); // $writer->save("output.xlsx"); // Excel 2003 以前の形式で保存 $writer = new PHPExcel_Writer_Excel5($ex); $writer->save('output.xls'); // ファイルをダウンロード $file = 'output.xls'; $fileSize = filesize($file); header ("Content-Disposition: attachment; filename={$file}"); header ("Content-Length:{$fileSize}"); header ("Content-Type: application/octet-stream"); readfile($file);
解説
$sheet->setTitle(‘シート1’); (21行目)
シートのタイトルを設定します。
$sheet->getDefaultStyle()->getFont()->setName(‘MS ゴシック’); (23行目)
フォントの指定をします。
$sheet->getDefaultStyle()->getFont()->setSize(11); (25行目)
フォントのサイズを設定します。
$sheet->setCellValue(‘A1’, ‘A1に書き込み’); (28、29行目)
A1を指定してExcelに書き込みます。
数値で書き込む場合、列は0から始まるのに対して、行は1から始まるので注意が必要です。
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); (33行目)
センター揃えを指定しています。
->getFill()->getStartColor()->setRGB(‘000000’); (37行目)
背景色を指定しています。
setFillType(PHPExcel_Style_Fill::FILL_SOLID);(36行目)がないと色がつきませんでした。
->getFont()->getColor()->setRGB(’00ffff’); (40行目)
文字色を指定しています。
->applyFromArray($line); (51、52行目)
連想配列で指定できるので、例では連想配列を指定しています。
テンプレートの読み込みや保存はご利用のExcelのバージョンに合わせてご使用ください。
setHorizontal();の定数一覧
横
中央揃え | PHPExcel_Style_Alignment::HORIZONTAL_CENTER |
左揃え | PHPExcel_Style_Alignment::HORIZONTAL_LEFT |
右揃え | PHPExcel_Style_Alignment::HORIZONTAL_RIGHT |
縦
上詰め | PHPExcel_Style_Alignment::VERTICAL_TOP |
中央揃え | PHPExcel_Style_Alignment::VERTICAL_CENTER |
下詰め | PHPExcel_Style_Alignment::VERTICAL_BOTTOM |