前回、簡単なサンプルを書いてみたので、今回は、拡張して請求書を EXCEL で出力してみたいと思います。
大きな流れとしては、
(1) EXCEL の請求書雛形を作成
(2) PhpSpreadsheet で、請求書雛形を読み込む
(3) 読み込んだ、請求書雛形に値を設定
(4) 請求書として保存する
としたいと思います。
2.まず、EXCEL の請求書雛形を作成
雛形になる EXCEL には、書式や計算式などを入れておくことができます。
![0010-1](https://blog.future.ad.jp/hs-fs/hubfs/0010-1.png?width=1000&height=612&name=0010-1.png)
3.実際の処理
以下のようなコードになりました。
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
/* 請求書の雛形を読み込みます */
$inputFileName = './請求書雛形.xlsx';
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);
/* フォーマット */
$sheet = $spreadsheet->getSheetByName('請求書');
/* 請求日付セット */
$sheet->setCellValue('H2', date('Y-m-d'));
/* 宛先セット */
$sheet->setCellValue('C6', '〒 600-8815');
$sheet->setCellValue('C7', '京都府京都市下京区中堂寺粟田町91番地 ');
$sheet->setCellValue('C8', '京都リサーチパーク9号館7階');
$sheet->setCellValue('C9', '株式会社フューチャースピリッツ 御中');
/* 明細情報 */
$sheet->setCellValue('B12', 'FutureWeb Pro M1 初期費用');
$sheet->setCellValue('F12', 1);
$sheet->setCellValue('G12', 98000);
$sheet->setCellValue('B13', 'FutureWeb Pro M1 月額費用');
$sheet->setCellValue('F13', 1);
$sheet->setCellValue('G13', 55000);
/* ファイルに出力 */
$writer = new Xlsx($spreadsheet);
$writer->save('請求書.xlsx');
こんな感じです。
コードを実行すると、`請求書.xlsx` というファイルができます。中身は、こんな感じになります。
プログラムで指定した通りに、`請求書.xlsx` に値が設定されているのが確認できました。