はじめに
こんばんは。
phpSpreadsheetでファイルを作成する際に、日付のセルを(YYYY-MM-DD)の形式で登録したい場合があったので、簡単ですが残しておきます。
何も設定しない場合は、以下みたいに YYYY/MM/DD
の形でフォーマットされます。
これを YYYY-MM-DD
で入力できるようにしてみました。
本題
<?php use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', 'ID'); $sheet->setCellValue('B1', '会社名'); $sheet->setCellValue('C1', '電話番号'); $sheet->setCellValue('D1', '設立日'); $sheet->getStyle('D')->getNumberFormat() ->setFormatCode(NumberFormat::FORMAT_DATE_YYYYMMDD); header('Content-Disposition: attachment; filename="download.xlsx"'); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); $writer = new Xlsx($spreadsheet); $writer->save('php://output');
これで フォーマットが YYYY-MM-DD
になりました。
終わりに
ほかの書式も設定できそうなので、今度試してみます。 簡単ですが以上です。