<?php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\WithStyles;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
class LaporanPekerjaanOpd implements FromView,WithEvents,ShouldAutoSize
{
public function __construct($data){
$this->data = $data;
}
/**
* @return \Illuminate\Support\Collection
*/
// public function styles(Worksheet $sheet){
// return [
// 1 => ['font'=>['bold'=>true]]
// ];
// }
public function registerEvents(): array
{
return [
AfterSheet::class=>function(AfterSheet $event) {
$event->sheet->getDelegate()->getStyle('A1:I3')
->getAlignment()
->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER)
->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$event->sheet->getDelegate()->getStyle('A4:C3')
->getAlignment()
->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$event->sheet->getDelegate()->getStyle('A6:Y8')
->getAlignment()
->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER)
->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
$lastRow = $event->sheet->getDelegate()->getHighestRow();
$columnsToAlignRight = ['K', 'L', 'M', 'N', 'R', 'Q','U'];
foreach ($columnsToAlignRight as $column) {
$event->sheet->getDelegate()->getStyle($column . '9:' . $column . $lastRow)
->getAlignment()
->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT);
}
$columnsToAlignCenter = ['G','H','I','J','O','P','R','S','T'];
foreach ($columnsToAlignCenter as $column) {
$event->sheet->getDelegate()->getStyle($column . '9:' . $column . $lastRow)
->getAlignment()
->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
}
$event->getSheet()->getDelegate()->getStyle('A6:Y8')->getFont()->setBold(true);
$event->getSheet()->getDelegate()->getStyle('A1:I3')->getFont()->setBold(true);
},
];
}
public function view(): View
{
return view('export.laporan-pekerjaan-opd',$this->data);
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]