orderBy('nama')->get(); } public function map($warga): array { return [ $warga->nik, $warga->nama, $warga->wilayah ? $warga->wilayah->dusun : $warga->dusun, $warga->wilayah ? $warga->wilayah->rw : $warga->rw, ]; } public function headings(): array { return [ 'NIK', 'Nama Lengkap', 'Dusun', 'RW', ]; } public function startCell(): string { return 'A9'; } public function registerEvents(): array { return [ AfterSheet::class => function(AfterSheet $event) { $sheet = $event->sheet->getDelegate(); // Set Kop Data $sheet->setCellValue('A1', 'PEMERINTAH KABUPATEN MOJOKERTO'); $sheet->setCellValue('A2', 'KECAMATAN PUNGGING'); $sheet->setCellValue('A3', 'DESA PUNGGING'); $sheet->setCellValue('A4', 'Jalan Raya Pungging No. 27 Pungging, Mojokerto, Jawa Timur'); $sheet->setCellValue('A5', 'Kode Pos 61384 Telp. (0321) 532733'); $sheet->setCellValue('A7', 'DATA WARGA BLT-DD'); // Merge Cells for ($i = 1; $i <= 7; $i++) { $sheet->mergeCells("A{$i}:D{$i}"); } // Styling $sheet->getStyle('A1:A7')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); $sheet->getStyle('A1:A3')->getFont()->setBold(true)->setSize(14); $sheet->getStyle('A7')->getFont()->setBold(true)->setSize(12); $sheet->getStyle('A9:D9')->getFont()->setBold(true); $sheet->getStyle('A9:D9')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); // Auto-size columns foreach (range('A', 'D') as $col) { $sheet->getColumnDimension($col)->setAutoSize(true); } }, ]; } }