
Export file Excel di Laravel - Mapping Data
Mari Ekspor excel dengan kolom tertentu (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:
- Mari Ekspor file excel di Laravel 📁 - Part #1
- Mari Ekspor excel dengan kolom tertentu (Mapping Data) 🏷️ - Part #2
- Mari kita tambahkan headings di file Excelnya (Add Heading) 🧱 - Part #3
- Mari tambahkan Auto Size pada kolom (ShouldAutoSize) ⬅️➡️ - Part #4
Atau bisa simak dalam sebuah video, silahkan klik pada salah satu tautan dibawah yaa 👇
Playlist Video Laravel-Excel:
See you on next article! 😇