From 79de54eef0d1549802889dcad3efa187b94a95a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Pocrnji=C4=8D?= Date: Wed, 10 Dec 2025 21:15:53 +0100 Subject: [PATCH] Contract reference text format inside exported excel --- app/Exports/SegmentContractsExport.php | 13 ++++++++++++- tests/Feature/SegmentExportTest.php | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/Exports/SegmentContractsExport.php b/app/Exports/SegmentContractsExport.php index 5d10234..a7dc401 100644 --- a/app/Exports/SegmentContractsExport.php +++ b/app/Exports/SegmentContractsExport.php @@ -11,11 +11,14 @@ use Maatwebsite\Excel\Concerns\WithHeadings; use Maatwebsite\Excel\Concerns\WithMapping; use PhpOffice\PhpSpreadsheet\Shared\Date as ExcelDate; +use PhpOffice\PhpSpreadsheet\Style\NumberFormat; class SegmentContractsExport implements FromQuery, ShouldAutoSize, WithColumnFormatting, WithHeadings, WithMapping { public const DATE_EXCEL_FORMAT = 'dd"."mm"."yyyy'; + public const TEXT_EXCEL_FORMAT = NumberFormat::FORMAT_TEXT; + /** * @var array */ @@ -76,8 +79,16 @@ public function columnFormats(): array $formats = []; foreach ($this->columns as $index => $column) { + $letter = $this->columnLetter($index); + + if ($column === 'reference') { + $formats[$letter] = self::TEXT_EXCEL_FORMAT; + + continue; + } + if (in_array($column, ['start_date', 'end_date'], true)) { - $formats[$this->columnLetter($index)] = self::DATE_EXCEL_FORMAT; + $formats[$letter] = self::DATE_EXCEL_FORMAT; } } diff --git a/tests/Feature/SegmentExportTest.php b/tests/Feature/SegmentExportTest.php index 5d6fd49..ba0513c 100644 --- a/tests/Feature/SegmentExportTest.php +++ b/tests/Feature/SegmentExportTest.php @@ -141,7 +141,7 @@ public function test_export_filename_includes_client_name_when_filtered(): void }); } - public function test_column_formats_apply_to_date_columns(): void + public function test_column_formats_apply_to_reference_and_date_columns(): void { $export = new SegmentContractsExport( Contract::query(), @@ -150,6 +150,7 @@ public function test_column_formats_apply_to_date_columns(): void $this->assertSame( [ + 'A' => SegmentContractsExport::TEXT_EXCEL_FORMAT, 'B' => SegmentContractsExport::DATE_EXCEL_FORMAT, 'D' => SegmentContractsExport::DATE_EXCEL_FORMAT, ],