export-file-excel-di-laravel-column-auto-size

Export file Excel di Laravel - Column Auto Size

2020-10-15

Mari tambahkan Auto Size pada kolom ⬅️➡️ - Part #4


Pada artikel seri sebelum ini kita sudah membahas bagaimana caranya menambahkan heading supaya data pada kolom terlabeli dan memudahkan kita untuk mengetahui itu data apa. Namun itu saja masih kurang cantik, pada artikel ini kita akan belajar membuat lebar kolomnya menyesuaikan isi terpanjang dari kolom tersebut, supaya lebih cantik dan mudah dibacanya.


1. Daftarkan ShouldAutoSize

Untuk membuat lebar kolom menyesuaikan value paling lebar di kolom itu, tentunya kita harus menambahkan sebuah interface yaitu ShouldAutoSize ke class File Export.


Yang sebelumnya di file UsersExport seperti ini.

<?php

namespace App\Exports;

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

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

Maka kita tambahkan ShouldAutoSize

use Maatwebsite\Excel\Concerns\ShouldAutoSize;

class UsersExport implements FromCollection, ShouldAutoSize

sehingga menjadi tampak seperti ini.

<?php

namespace App\Exports;

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

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

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;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;

class UsersExport implements FromCollection, WithMapping, WithHeadings, ShouldAutoSize
{
    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,
        ];
    }

    public function headings():array
    {
        return [
            //pastikan urut dan jumlahnya sesuai dengan yang ada di mapping-data atau table di database
            'Nama',
            'Email',
            'Alamat',
            'No.HP',
        ];
    }
}

2. 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!


Playlist Artikel Laravel-Excel:

  1. Mari Ekspor file excel di Laravel 📁 - Part #1
  2. Mari Ekspor excel dengan kolom tertentu (Mapping Data) 🏷️ - Part #2
  3. Mari kita tambahkan headings di file Excelnya (Add Heading) 🧱 - Part #3
  4. 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:

  1. Laravel - #1 Export file (basic)

See you on next article! 😇