Я использую Laravel Excel для экспорта файлов в CSV, HTML и PDF (с TCPDF)
Я пытаюсь экспортировать его с верхним и нижним колонтитулом на всех страницах, но не могу увидеть их в экспортированном файле.
Кроме того, результаты в файле очень уменьшены и занимают не всю ширину страницы. Как я могу сделать так, чтобы он занимал достаточно много места?
Вот мой код:
public function registerEvents(): array
{
return [
BeforeExport::class => function (BeforeExport $event) {
$event->writer->getProperties()
->setTitle("Test Document")
->setSubject("Test Document");
},
AfterSheet::class => function (AfterSheet $event) {
$event->sheet->getDelegate()->getPageSetup()->setOrientation(PageSetup::ORIENTATION_DEFAULT);
$event->sheet->getDelegate()->getPageSetup()->setPaperSize(PageSetup::PAPERSIZE_A4);
$event->sheet->getDelegate()->getPageSetup()->setFitToWidth(1);
$event->sheet->getDelegate()->getPageSetup()->setFitToHeight(0);
$event->sheet->getDelegate()->getPageSetup()->setScale(100);
$event->sheet->getDelegate()->getPageSetup()->setHorizontalCentered(true);
$event->sheet->getDelegate()->getHeaderFooter()->setOddHeader('My Header');
$event->sheet->getDelegate()->getHeaderFooter()->setOddFooter('My Footer');
// last column as letter value (e.g., D)
$last_column = (count($this->results)) ? Coordinate::stringFromColumnIndex(count($this->results[0])) : 'W';
// calculate last row (total results + header rows + column headings row + new row)
$last_row = count($this->results) + 2 + 1 + 1;
// set up a style array for cell formatting
$style_text_center = [
'alignment' => [
'horizontal' => Alignment::HORIZONTAL_CENTER
]
];
// at row 1, insert 2 rows
$event->sheet->insertNewRowBefore(1, 2);
// merge cells for full-width
$event->sheet->mergeCells(sprintf('A1:%s1',$last_column));
$event->sheet->mergeCells(sprintf('A2:%s2',$last_column));
$event->sheet->mergeCells(sprintf('A%d:%s%d',$last_row,$last_column,$last_row));
// assign cell values
$event->sheet->setCellValue('A1', 'Top Triggers Report');
$event->sheet->setCellValue('A2', 'SECURITY CLASSIFICATION - UNCLASSIFIED [Generator: Admin]');
$event->sheet->setCellValue(sprintf('A%d', $last_row), 'SECURITY CLASSIFICATION - UNCLASSIFIED [Generated: ...]');
// assign cell styles
$event->sheet->getStyle('A1:A2')->applyFromArray($style_text_center);
$event->sheet->getStyle(sprintf('A%d', $last_row))->applyFromArray($style_text_center);
},
];
}
В настоящее время результаты видны здесь
Как сделать так, чтобы она занимала всю ширину страницы, чтобы она выглядела хорошо.