dataTableData = $dataTableData; } public function registerEvents(): array { return [ AfterSheet::class => function(AfterSheet $event) { $cellRange = 'A1:Q1'; // All headers $event->sheet->getDelegate()->getStyle($cellRange)->getFont()->setBold(true); //$event->sheet->setAutoFilter($cellRange); $event->sheet->setTitle('Property Competitor Export'); }, ]; } public function headings(): array { $header = [ 'Property' ]; foreach ($this->dataTableData['date'] as $date) { $header[] = $date; } $header[] = 'Currency'; return $header; } public function array(): array { $dataTableData = []; foreach ($this->dataTableData['value'] as $propertyKey => $propertyValue) { $dataTableData[$propertyKey] = [ 'name' => $this->dataTableData['property'][$propertyKey] ]; foreach ($propertyValue as $dateKey => $value) { $dataTableData[$propertyKey][$dateKey] = $value['amount']; } $dataTableData[$propertyKey]['currency'] = $value['currency']; } return [$dataTableData]; } }