Laravel | Excel (Mapping Data) 🏷️ - Part #2

Laravel | Excel (Mapping Data) 🏷️ - Part #2

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 UserExport.

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

Misal kita memiliki tabel users di database kita, di dalam tabel users terdapat 8 field column tuh, yaitu: id | name | email | password | address | phone | created_at | updated_at. Yang kita perlu export datanya ke file excel hanya name | email | address | phone, 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.

Selesai!
Next kita akan tambahkan header atau heading. Apalah namanya gak penting.

Playlist Artikel Laravel-Excel:

  1. Laravel | Excel (Quick start Export File)📁 - Part #1
  2. Laravel | Excel (Mapping Data) 🏷️ - Part #2
  3. Laravel | Excel (Add Heading) 🏷🧱 - Part #3
  4. Laravel | Excel (ShouldAutoSize) ⬅️➡️ - Part #4

See you on next article! 😇


Anda bisa mensupport saya melalui berikut :

  1. PayPal
  2. Saweria
  3. Trakteer
Tampilkan Komentar