data = $data; $this->title = $title; } /** STREAMING ROW PER ROW */ public function generator(): Generator { foreach ($this->data as $row) { yield $row; } } /** STYLING */ public function styles(Worksheet $sheet) { $lastRow = $sheet->getHighestRow(); $lastColumn = $sheet->getHighestColumn(); $range = 'A1:' . $lastColumn . $lastRow; // Border $sheet->getStyle($range)->applyFromArray([ 'borders' => [ 'allBorders' => [ 'borderStyle' => Border::BORDER_THIN, ], ], ]); // Header style $sheet->getStyle('A1:' . $lastColumn . '1')->applyFromArray([ 'font' => ['bold' => true], 'fill' => [ 'fillType' => 'solid', 'color' => ['rgb' => 'FFFF00'], ], ]); return []; } public function title(): string { return $this->title; } }