Demo
sample.php
PHP
<?php
require_once 'vendor/autoload.php';
/* PHPExcelオブジェクトの作成 */
$spreadsheet = new PHPExcel();
$sheet = $spreadsheet->getActiveSheet();
$fileName = "sample.xlsx"; //ファイル名を設定
$sheet->setTitle("シートタイトル"); //シートタイトル名を設定
/* プロパティ情報の編集 */
$spreadsheet->getProperties()
->setTitle("タイトル")
->setSubject("件名")
->setKeywords("タグ")
->setCategory("分類項目")
->setDescription("コメント")
->setCreator("作成者名")
->setLastModifiedBy("前回保存者名")
->setCompany('会社名')
->setManager('マネージャー名')
->setCreated(strtotime('2020-01-02 03:04:05')) //コンテンツの作成日時
->setModified(strtotime('2020-02-03 04:05:06'));//前回保存日時
/* 値とセルを指定 */
$sheet->setCellValue('A1', '↑A列:幅14');
$sheet->setCellValue('A2', '←2行:高さ27');
$sheet->setCellValue('B1', 'テキスト');
$sheet->setCellValue('B3', '左寄せ');
$sheet->setCellValue('B5', '上寄せ');
$sheet->setCellValue('B7', 'テキストの折り返し');
$sheet->setCellValue('B13', 'セル(B13,C13,D13)の結合');
$sheet->setCellValue('B15', 'B15からD15まで枠線を表示');
$sheet->setCellValue('B17', '枠線全て');
$sheet->setCellValue('B22', '内側のみ');
$sheet->setCellValue('B27', '縦線のみ');
$sheet->setCellValue('B32', '横線のみ');
$sheet->setCellValue('C1', '文字色');
$sheet->setCellValue('C3', '中央(横)');
$sheet->setCellValue('C5', '中央(縦)');
$sheet->setCellValue('D1', '背景色');
$sheet->setCellValue('D3', '右寄せ');
$sheet->setCellValue('D5', '下寄せ');
$sheet->setCellValue('E1', '文字サイズ');
$sheet->setCellValue('F3', '枠線(細)');
$sheet->setCellValue('F5', '枠線(太)');
$sheet->setCellValue('F7', '左線');
$sheet->setCellValue('F9', '上線');
$sheet->setCellValue('F11', '右線');
$sheet->setCellValue('F13', '下線');
$sheet->setCellValue('F15', '枠線赤');
$sheet->setCellValue('F17', '点線');
$sheet->setCellValue('F19', '長い点線');
$sheet->setCellValue('F21', '二重線');
$sheet->setCellValue('F23', '細線');
$sheet->setCellValue('F25', '太線');
$sheet->setCellValue('F27', '配列で指定');
/* 配列の形で値を設定 */
$dataList = array(
array('配列の形で値を設定'),
array(NULL, 1, 2),
array(3, 4, 5),
);
$sheet->fromArray($dataList, NULL, 'B9', true); //指定したセル(B9)を起点に値を挿入する
/* 列の横幅を設定 */
$sheet->getColumnDimension('A')->setWidth(14); //列(A)の幅を14に設定
$sheet->getColumnDimension('A')->setAutosize(false); //true:列(A)の幅を自動調整, false:自動調整しない
/* 行の縦幅を設定 */
$sheet->getRowDimension('2')->setRowHeight(27); //行(2)の高さを27に設定
/* 枠線を設定 */
$sheet->getStyle('B15:D15')->applyFromArray(array('borders' => array('outline' => array('style' => PHPExcel_Style_Border::BORDER_THIN)))); //B15からD15まで外枠線を表示
$sheet->getStyle('B18:D20')->applyFromArray(array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN)))); //allborders:全て
$sheet->getStyle('B23:D25')->applyFromArray(array('borders' => array('inside' => array('style' => PHPExcel_Style_Border::BORDER_THIN)))); //inside:内側のみ
$sheet->getStyle('B28:D30')->applyFromArray(array('borders' => array('vertical' => array('style' => PHPExcel_Style_Border::BORDER_THIN)))); //vertical:縦線のみ
$sheet->getStyle('B33:D35')->applyFromArray(array('borders' => array('horizontal' => array('style' => PHPExcel_Style_Border::BORDER_THIN)))); //vertical:横線のみ
$sheet->getStyle('F3')->applyFromArray(array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN)))); //BORDER_THIN:通常線
$sheet->getStyle('F5')->applyFromArray(array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THICK)))); //BORDER_THICK:BORDER_MEDIUMより太線
$sheet->getStyle('F7')->applyFromArray(array('borders' => array('left' => array('style' => PHPExcel_Style_Border::BORDER_THIN)))); //left:左線
$sheet->getStyle('F9')->applyFromArray(array('borders' => array('top' => array('style' => PHPExcel_Style_Border::BORDER_THIN)))); //top:上線
$sheet->getStyle('F11')->applyFromArray(array('borders' => array('right' => array('style' => PHPExcel_Style_Border::BORDER_THIN)))); //right:右線
$sheet->getStyle('F13')->applyFromArray(array('borders' => array('bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN)))); //bottom:下線
$sheet->getStyle('F15')->applyFromArray(array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN, 'color' => array('rgb' => 'ff0000'))))); //枠線の色を赤に設定
$sheet->getStyle('F17')->applyFromArray(array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_DOTTED)))); //BORDER_DOTTED:点線
$sheet->getStyle('F19')->applyFromArray(array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_DASHED)))); //BORDER_DASHED:長い点線
$sheet->getStyle('F21')->applyFromArray(array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_DOUBLE)))); //BORDER_DOUBLE:二重線
$sheet->getStyle('F23')->applyFromArray(array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_HAIR)))); //BORDER_HAIR:細線
$sheet->getStyle('F25')->applyFromArray(array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM)))); //BORDER_MEDIUM:太線
$borderStyle = array(
'borders' => array(
'top' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
'right' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
'left' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN)
)
);
$sheet->getStyle('F27')->applyFromArray($borderStyle); //配列で指定
/* テキストの配置を設定 */
$sheet->getStyle('B3')->getAlignment()->setHorizontal('left'); //left:左寄せ
$sheet->getStyle('B5')->getAlignment()->setVertical('top'); //top:上寄せ
$sheet->getStyle('C3')->getAlignment()->setHorizontal('center');//center:中央寄せ(横)
$sheet->getStyle('C5')->getAlignment()->setVertical('center'); //top:中央寄せ(縦)
$sheet->getStyle('D3')->getAlignment()->setHorizontal('right'); //right:右寄せ
$sheet->getStyle('D5')->getAlignment()->setVertical('bottom'); //top:下寄せ
/* テキストの折り返しを設定 */
$sheet->getStyle('B7')->getAlignment()->setWrapText(true);
/* セルを連結 */
$sheet->mergeCells('B13:D13');
/* 文字色を設定 */
$sheet->getStyle('C1')->getFont()->getColor()->setARGB('ff0000'); //C1セルの文字色を赤に設定
/* 背景色を設定 */
$sheet->getStyle('D1')->getFill()->setFillType('solid')->getStartColor()->setARGB('00ffff'); //D1セルの背景色を水色に設定
/* 文字サイズを設定 */
$sheet->getStyle('E1')->getFont()->setSize(18); //E1セルの文字サイズを18に設定
/* 改行のある文字を入力 */
$sheet->getStyle('C7')->getAlignment()->setWrapText(true); //setWrapTextをtrueにした後に、setCellValueで値をセット。
$sheet->setCellValue('C7', "改行の\nある文字を\n入力");
/* -------------------- */
/* Excelファイルのダウンロード */
header("Content-Description: File Transfer");
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); //vnd.openxmlformats-officedocument.spreadsheetml.sheet:EXCELファイル( .xlsx OFFICE 2007以降), vnd.ms-excel:EXCELファイル( .xls OFFICE 2007より過去)
header('Content-Disposition: attachment; filename="'.$fileName.'"'); //ダウンロード時のファイル名をセット
header('Cache-Control: no-store, max-age=0'); //新しいリソースのキャッシュを防止、キャッシュのクリア
ob_end_clean(); //バッファ消去
$writer = PHPExcel_IOFactory::createWriter($spreadsheet, 'Excel2007'); //Excel5:Excel97~2003, Excel2007:Excel2007~
$writer->save('php://output');
?>