Demo
sample.phpExcelテンプレートファイル(template.xlsx)
PHP
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Reader\Xls as XlsReader; //xlsファイルの読み込み
use PhpOffice\PhpSpreadsheet\Reader\Xlsx as XlsxReader; //xlsxファイルの読み込み
use PhpOffice\PhpSpreadsheet\Writer\Xlsx as XlsxWriter; //xlsxファイルの出力
use PhpOffice\PhpSpreadsheet\Style\Border; //セルの枠線描画
use PhpOffice\PhpSpreadsheet\Style\Alignment; //テキストの配置指定(左寄せ, 中央寄せ, 右寄せ)
/* スプレッドシートを読み込む */
$reader = new XlsxReader();
$spreadsheet = $reader->load('template.xlsx'); //.xlsxテンプレートファイルの読込
$sheet = $spreadsheet->getSheetByName('Sheet1'); //任意のシートを取得
/* 値とセルを指定 */
$sheet->setCellValue('A2', 'りんご');
$sheet->setCellValue('A3', 'いちご');
$sheet->setCellValue('A4', 'もも');
/* Excelファイルのダウンロード */
$fileName = "sample.xlsx"; //ダウンロード時のファイル名を設定
header("Content-Description: File Transfer");
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); //EXCELファイル( .xlsx OFFICE 2007以降)
header('Content-Disposition: attachment; filename="'.$fileName.'"'); //ダウンロード時のファイル名をセット
header('Cache-Control: no-store, max-age=0'); //新しいリソースのキャッシュを防止、キャッシュのクリア
ob_end_clean(); //バッファ消去
$writer = new XlsxWriter($spreadsheet);
$writer->save('php://output');
?>