Cara menggunakan laravel excel export image

Pada postingan kali ini saya akan membahas cara eksport dan import data dari dan ke file excel dengan menggunkan framework laravel. Hal ini biasanya digunakan saat user ingin memindahkan data yang semula ada di file excel ke sistem atau user ingin menginginkan data untuk dikirim dalam bentuk excel.

Oke langsung saja Hal yang perlu disiapkan :

1.      Koneksi internet

2.      Aplikasi laravel


Tahapannya :

1.      Buka file composer dan tambahkan

"maatwebsite/excel": "~2.1.0",

Pada contoh kali ini saya menggunakan metwebsite-excel, tapi anda bisa memakai package yang lain. Jangan lupa untuk di update composernya.

Buat Model dan Database

Pada tahap ini kita akan membuat database dan model. Kamu bisa membuat table dari migration atau langsung dari phpmyadmin. Jika kamu menggunakan migration ketikkan command di cmd.

php artisan make:migration nama_migration_table. 

Kemudian isi dengan schema table dan ketikkan

php artisan migrate

Pada contoh kali ini saya membuat tabel dari phpmyadmin.

Untuk membuat model dari tabel ketikkan di cmd.

php artisan make:model nama_model

Kemudian isi file model yang ada terletak di direkori App\(nama model). Berikut contoh model dari saya.

Pada artikel seri sebelum ini kita sudah membahas bagaimana caranya mengekspor data dari database ke file Excel, naahh pada artikel ini kita akan belajar cara mengekspornya dengan kolom-kolom tertentu saja.

1. Daftarkan WithMapping

Untuk mengambil data yang akan kita ekspor nantinya dengan kolom tertentu yang kita inginkan, kita harus menambahkan sebuah interface yaitu WithMapping ke class File Export.

Yang sebelumnya di file UsersExport seperti ini.

    <?php

    namespace App\Exports;

    use App\User;
    use Maatwebsite\Excel\Concerns\FromCollection;

    class UsersExport implements FromCollection
    {
        public function collection()
        {
            return User::all();
        }
    }

Maka kita tambahkan WithMapping

    use Maatwebsite\Excel\Concerns\WithMapping;

    class UsersExport implements FromCollection, WithMapping

sehingga menjadi tampak seperti ini.

    <?php

    namespace App\Exports;

    use App\User;
    use Maatwebsite\Excel\Concerns\FromCollection;
    use Maatwebsite\Excel\Concerns\WithMapping;

    class UsersExport implements FromCollection, WithMapping
    {
        public function collection()
        {
            return User::all();
        }
    }

2. Gunakan function map():array

Selanjutnya kita tambahkan function map dengan tipe array ke dalam class

    use Maatwebsite\Excel\Concerns\WithMapping;

    class UsersExport implements FromCollection, WithMapping
0.

    public function map($user):array
    {
        return [
            //data yang dari kolom tabel database yang akan diambil
        ];
    }

Misal kita memiliki tabel

    use Maatwebsite\Excel\Concerns\WithMapping;

    class UsersExport implements FromCollection, WithMapping
1 di database kita, di dalam tabel
    use Maatwebsite\Excel\Concerns\WithMapping;

    class UsersExport implements FromCollection, WithMapping
1 terdapat 8 field column tuh, yaitu:
    use Maatwebsite\Excel\Concerns\WithMapping;

    class UsersExport implements FromCollection, WithMapping
3. Yang kita perlu export datanya ke file excel hanya
    use Maatwebsite\Excel\Concerns\WithMapping;

    class UsersExport implements FromCollection, WithMapping
4, maka 4 field column itu akan kita mapping.

Sehingga pada function map akan tampak seperti ini.

    public function map($user):array
    {
        return [
            //data yang dari kolom tabel database yang akan diambil
            $user->name,
            $user->email,
            $user->address,
            $user->phone,
        ];
    }

Dan keseluruhan file UsersExport akan tampak seperti ini.

    <?php

    namespace App\Exports;

    use App\User;
    use Maatwebsite\Excel\Concerns\FromCollection;
    use Maatwebsite\Excel\Concerns\WithMapping;

    class UsersExport implements FromCollection, WithMapping
    {
        public function collection()
        {
            return User::all();
        }

        public function map($user):array
        {
            return [
                //data yang dari kolom tabel database yang akan diambil
                $user->name,
                $user->email,
                $user->address,
                $user->phone,
            ];
        }
    }

3. Jangan lupa kita uji

Selanjutnya yaitu kita uji. Akses route yang sudah didaftarkan, lihat hasil unduhan file excel nya, kemudian buka. Apakah berhasil? Jika Ya, berarti anda luarbiasa. Jika belum berhasil silahkan tanyakan via kolom komentar ya.