LoginSignup
9
10

More than 5 years have passed since last update.

PhpSpreadsheetに書き込む

Posted at

phpでExcelを読み書きする時は、PhpSpreadsheetが便利です。

公式ドキュメントは、こちら↓
https://phpspreadsheet.readthedocs.io/en/develop/

書き込む

1. 新規ファイルに書き込む

// ①シートの新規作成
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

// ②シートへの書き込み 配列を、指定セルから描写することもできます。
$header = [    ];
$sheet->fromArray($header, null, 'A1');

// ③スタイルの定義 配列で色や文字フォントを指定します。
$styleArray = [
    'alignment' => [
        'vertical' => Alignment::VERTICAL_CENTER,
        'wrapText' => true
];
$sheet->getStyle($styleRange)->applyFromArray($styleArray);

// ④ファイルセーブ サーバの指定フォルダに保存することもできますし、
// 保存先に 'php://output' を指定しヘッダを追加するとクライアント端末へ送信しダウンロードダイアログを表示させます。
header('Content-Disposition: attachment; filename=' . mb_convert_encoding('案件一覧.xlsx', 'SJIS-win', 'UTF-8'));
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
$writer = IOFactory::createWriter($spreadSheet, 'Xlsx');
$writer->save('php://output');

2. テンプレートファイルを使って書き込む

あらかじめサーバに配置したテンプレートを読み込んで、ファイルを作ることもできます。

$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('template.xlsx');

$worksheet = $spreadsheet->getActiveSheet();

$worksheet->getCell('A1')->setValue('John');
$worksheet->getCell('A2')->setValue('Smith');

$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xls');
$writer->save('write.xls');
9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10