Я использовал laravel excel версии 2.1 ранее.В версии 2.0 проектирование ячеек было довольно простым.Поэтому я начал новый проект в последней версии laravel (5.5) и был шокирован, узнав, что мы не можем использовать laravel excel версии 2.0 в этой версии laravel.Я установил последнюю версию laravel-excel 3.1, и стилизация листов полностью отличается от версии larave-excel версии 2.0, поэтому я копаюсь в документации. Я нашел эти пользовательские макросы для стилизации листа, но он не работал.
Вот ссылка на используемый пакет laravel excel
Laravel Excel
Вот мой код класса экспорта
Класс экспорта
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\AfterSheet;
use Maatwebsite\Excel\Concerns\WithEvents;
class CollectionExport implements WithEvents,FromCollection, WithHeadings, ShouldAutoSize
{
use Exportable;
/*************** Alternate Method **************************/
// public function registerEvents(): array
// {
// return [
// AfterSheet::class => function(AfterSheet $event) {
// $cellRange = 'A1:W1'; // All headers
// $event->sheet->getDelegate()->getStyle($cellRange)->getFont()->setSize(14);
// },
// ];
// }
public function registerEvents(): array
{
return [
BeforeExport::class => function(BeforeExport $event) {
$event->writer->setCreator('Patrick');
},
AfterSheet::class => function(AfterSheet $event) {
$event->sheet->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE);
$event->sheet->styleCells(
'A1:W1',
[
'borders' => [
'outline' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK,
'color' => ['argb' => 'FFFF0000'],
],
]
]
);
},
];
}
public function collection()
{
return collect([
[
'name' => 'Povilas',
'surname' => 'Korop',
'email' => 'povilas@laraveldaily.com',
'twitter' => '@povilaskorop'
],
[
'name' => 'Taylor',
'surname' => 'Otwell',
'email' => 'taylor@laravel.com',
'twitter' => '@taylorotwell'
]
]);
}
public function headings(): array
{
return [
'Name',
'Surname__',
'Email',
'Twitter',
];
}
}
Я вызываю это по определенному маршруту
return Excel::download(new CollectionExport(), 'export.xlsx');
Этот метод registerEvents не влияет на создаваемый файл Excel. Я пропустилчто-то или делаешь неправильно?Заранее спасибо !!!PS: - Я попробовал оба метода для стилизации, ни один из них не влиял на стиль файла Excel