title = $title; return $this; } public function setFilename(string $filename): Excel { $this->filename = $filename; return $this; } public function addData(array $rows): Excel { foreach ($rows as $row) { $this->addRow($row); } return $this; } public function addRow(array $row): Excel { foreach ($row as $cell) { $this->addCell($cell); } return $this; } public function addCell(PhpSpreadsheet\Cell\Cell $cell): Excel { $this->data []= $cell; return $this; } /** * @throws Exception * @throws PhpSpreadsheet\Writer\Exception */ public function build(): void { $spreadsheet = new PhpSpreadsheet\Spreadsheet(); $spreadsheet->getProperties() ->setCreator('admin@incoviba.cl') ->setSubject($this->title) ->setCompany('Incoviba') ->setTitle($this->title); $sheet = $spreadsheet->getActiveSheet(); $sheet->setTitle($this->title); foreach ($this->data as $rowIndex => $row) { foreach ($row as $columnIndex => $cell) { $sheet->getCell([$columnIndex + 1, $rowIndex + 1])->setValue($cell); } } $writer = PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx'); $writer->save($this->filename); } }