Laravel で、エクセルを出力したり、入力する際に、Laravel Excel を利用する場合が多いと思います。
Laravel Excel は、直感的に使うことができて、機能もとても多いです。
そんな便利な Laravel Excel では、エクセル出力の際に、列指定のフォーマット指定ができます。
公式サイトにも、簡単な説明がありますが、あまり詳しく説明されていません。
そのため、本記事では簡単なサンプルで、利用方法を解説しています。
ぜひ、参考にしていただければと思います。
サンプルプログラム
InvoicesExport.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
namespace App\Exports; use PhpOffice\PhpSpreadsheet\Shared\Date; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; use Maatwebsite\Excel\Concerns\WithColumnFormatting; use Maatwebsite\Excel\Concerns\WithMapping; class InvoicesExport implements WithColumnFormatting, WithMapping { public function map($invoice): array { return [ $invoice->invoice_number, Date::dateTimeToExcel($invoice->created_at), $invoice->total ]; } /** * @return array */ public function columnFormats(): array { return [ 'B' => NumberFormat::FORMAT_DATE_DDMMYYYY, 'C' => NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE, ]; } } |
WithColumnFormatting を implements することで、 列指定のフォーマットが可能になります。
フォーマットの設定は、たくさんありますが、下記の参考サイトできれいにまとめられています。
ぜひ、参考にしていただければと思います。
参考サイト
こちらのサイトを参考にさせていただきました。
LaravelExcel3.1の列指定で小数点表示に統一する方法(フォーマットを指定する方法)
https://cross-accelerate-business-create.com/2021/01/30/laravelexcel3-1-export-column/
公式サイト
Formatting columns
https://docs.laravel-excel.com/3.0/exports/column-formatting.html