44
55use App \Models \Person \Person ;
66use Illuminate \Support \Collection ;
7+ use PhpOffice \PhpSpreadsheet \Cell \Coordinate ;
78
89class PersonExportService extends AbstractExportService {
10+ public const HEADERS = [
11+ 'Title ' ,
12+ 'Name ' ,
13+ 'Surname ' ,
14+ 'Registered Date ' ,
15+ 'Birth Date ' ,
16+ 'Gender ' ,
17+ 'Email ' ,
18+ 'Phone ' ,
19+ 'City ' ,
20+ 'Device Serial ' ,
21+ 'Agent Name ' ,
22+ ];
23+
924 /** @var Collection<int, Person> */
1025 private Collection $ peopleData ;
1126
1227 public function writePeopleData (): void {
1328 $ this ->setActivatedSheet ('Sheet1 ' );
1429
1530 foreach ($ this ->exportingData as $ key => $ value ) {
16- $ this ->worksheet ->setCellValue ('A ' .($ key + 2 ), $ value [0 ]);
17- $ this ->worksheet ->setCellValue ('B ' .($ key + 2 ), $ value [1 ]);
18- $ this ->worksheet ->setCellValue ('C ' .($ key + 2 ), $ value [2 ]);
19- $ this ->worksheet ->setCellValue ('D ' .($ key + 2 ), $ value [3 ]);
20- $ this ->worksheet ->setCellValue ('E ' .($ key + 2 ), $ value [4 ]);
21- $ this ->worksheet ->setCellValue ('F ' .($ key + 2 ), $ value [5 ]);
22- $ this ->worksheet ->setCellValue ('G ' .($ key + 2 ), $ value [6 ]);
23- $ this ->worksheet ->setCellValue ('H ' .($ key + 2 ), $ value [7 ]);
24- $ this ->worksheet ->setCellValue ('I ' .($ key + 2 ), $ value [8 ]);
25- $ this ->worksheet ->setCellValue ('J ' .($ key + 2 ), $ value [9 ]);
26- $ this ->worksheet ->setCellValue ('K ' .($ key + 2 ), $ value [10 ]);
31+ foreach (array_values ($ value ) as $ columnIndex => $ cellValue ) {
32+ $ this ->worksheet ->setCellValue (Coordinate::stringFromColumnIndex ($ columnIndex + 1 ).($ key + 2 ), $ cellValue );
33+ }
2734 }
2835
2936 foreach ($ this ->worksheet ->getColumnIterator () as $ column ) {
@@ -41,12 +48,12 @@ public function setExportingData(): void {
4148 $ person ->title ,
4249 $ person ->name ,
4350 $ person ->surname ,
51+ $ person ->created_at ?->format('d/m/Y ' ),
4452 $ person ->birth_date ,
4553 $ person ->gender ,
4654 $ primaryAddress ?->email,
4755 $ primaryAddress ?->phone,
4856 $ primaryAddress ?->city?->name,
49- $ primaryAddress ?->street,
5057 $ devices ,
5158 $ agent ->person ->name ?? '' ,
5259 ];
@@ -86,12 +93,12 @@ public function exportDataToArray(): array {
8693 'title ' => $ person ->title ,
8794 'name ' => $ person ->name ,
8895 'surname ' => $ person ->surname ,
96+ 'registered_date ' => $ person ->created_at ?->format('d/m/Y ' ),
8997 'birth_date ' => $ person ->birth_date ,
9098 'gender ' => $ person ->gender ,
9199 'email ' => $ primaryAddress ?->email,
92100 'phone ' => $ primaryAddress ?->phone,
93101 'city ' => $ primaryAddress ?->city?->name,
94- 'street ' => $ primaryAddress ?->street,
95102 'devices ' => $ devices ,
96103 'agent ' => $ agent ->person ->name ?? '' ,
97104 ];
0 commit comments