Tutorial Laravel 6 - Laravel Excel Membuat Autofilter

Post a Comment

 


Tutorial Laravel kali ini akan membahas bagaimana cara untuk membuat autofilter pada file yang dihasilkan setelah melakukan proses export data. Bagaimana cara melakukan export data pada Laravel Excel ini sudah saya jelaskan pada artikel sebelumnya. 

Baca juga :

Anda bisa membaca artikel di atas jika anda masih belum memahami bagaimana cara melakukan export data. Fitur Autofilter pada Excel sendiri digunakan untuk melakukan filter data yang ingin ditampilkan. Di mana fitur filter ini akan diterapkan pada semua kolom header dari file excel.

Berikut ini adalah langkah-langkah bagaimana cara membuat fitur autofilter pada Laravel Excel.

Yang pertama adalah anda perlu menambahkan 2 baris kode berikut untuk dapat menggunakan autofilter

use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;

Tambahkan kedua baris di atas pada file yang anda gunakan untuk melakukan export. 

Langkah berikutnya adalah menambahkan function seperti contoh kode di bawah ini 

    public function registerEvents(): array
    {
        return array(
            AfterSheet::class => function(AfterSheet $event) {
                $event->sheet->getDelegate()->setAutoFilter('A1:'.$event->sheet->getDelegate()->getHighestColumn().'1');

            }
        );
    }    


Cukup dengan 2 langkah tersebut maka file excel yang digenerate akan mempunyai fitur auto filter pada baris pertama. 

Sekarang saya akan menjelaskan bagaimana cara kerja dari baris-baris kode di atas. Yang pertama adalah kita perlu melakukan include WithEvents agar kita dapat menggunakan function registerEvents dan kita juga perlu menambahkan include AfterSheet karena kita akan menggunakan fitur tersebut di dalam function registerEvents yang kita buat kemudian.

Nah kemudian bagaimana cara kerja dari function registerEvents yang kita buat selanjutnya itu. Cara kerjanya adalah program akan menambahkan autofilter setelah data digenerate (event AfterSheet). 

$event->sheet->getDelegate()->setAutoFilter('A1:'.$event->sheet->getDelegate()->getHighestColumn().'1');

Kode di atas inilah yang berfungsi untuk menambahkan fitur autofilter. Dimana autofilter ditambahkan mulai dari kolom A1 sampai dengan $event->sheet->getDelegate()->getHighestColumn().'1' (kolom terakhir yang memiliki data pada baris 1).

Kode $event->sheet->getDelegate()->getHighestColumn() digunakan untuk mendapatkan kolom terakhir yang berisi data


Sekian dulu penjelasan saya pada artikel Tutorial Laravel 6 - Laravel Excel Membuat Autofilter ini. Sebenarnya mudah saja untuk melakukan berbagai macam modifikasi pada file excel yang kita generate jika kita sudah mengetahui penggunaan registerEvent dan event AfterSheet ini. Pada artikel selanjutnya saya akan memberikan contoh lainnya bagaimana cara kita melakukan modifikasi tampilan pada file excel hasil proses export ini. Silahkan gunakan kolom komentar jika ada pertanyaan atau anda mengalami kesulitan saat mengimplementasikan cara di atas. Terima kasih.

Related Posts

Post a Comment