Pada artikel kali ini saya akan menjelaskan bagaimana caranya untuk melakukan auto size column pada file excel saat kita melakukan export data dengan menggunakan laravel excel. Selain itu saya juga akan menjelaskan bagaimana cara memnerikan header saat melakukan export data. Di artikel sebelumnya sudah dijelaskan bagaimana cara untuk melakukan export data ke excel dengan menggunakan Laravel Excel.
Baca juga :
Tutorial Laravel 5.5 - Melakukan Export Data ke Excel dengan Laravel Excel
Pada tutorial sebelumnya saya hanya menjelaskan bagaimana cara untuk melakukan export data menjadi file excel tanpa memberikan format apapun pada hasil file tersebut. Berikut ini akan saya jelaskan bagaimana cara untuk mengatur kolom dan memberikan header pada hasil export tersebut.
#AUTO SIZE
Fitur ini digunakan untuk melakukan pengaturan lebar kolom secara otomatis. Hal ini sangat berguna agar file excel hasil export yang kita lakukan dapat mudah dibaca dan dipahami. Berikut ini adalah contoh kode bagaimana cara menggunakan fitur auto size ini
<?php
namespace App\Exports;
use App\Model\Peserta;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
class PesertaQueryExport implements FromQuery, ShouldAutoSize
{
public function __construct(string $name, string $bagian)
{
$this->name = $name;
$this->bagian = $bagian;
}
public function query()
{
return Peserta::query()->select('nama','nik')->where('nama','like', '%'.$this->name.'%')->where('bagian', 'like', '%'.$this->bagian.'%');
}
}
Contoh kode di atas merupakan cara dengan menggunakan metode FromQuery. Semua metode export baik FromCollection, FromQuery, dan FromView memiliki cara yang sama untuk melakukan format auto size ini. Caranya adalah dengan menambahkan use berikut ini
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
dan berikut nya adalah menambahkan ShouldAutoSize pada implements dari class yang kita buat.
class PesertaQueryExport implements FromQuery, ShouldAutoSize
Cukup dengan menggunakan kedua langkah ini saja maka hasil export file excel yang terbentuk sudah memiliki lebar kolom yang memudahkan user untuk membacanya.
#MENAMBAHKAN HEADER
Bentuk format kedua yang akan saya jelaskan adalah menambahkan header pada file excel tersebut. Sebenarnya pada artikel sebelumnya sudah saya jelaskan juga bahwa untuk menambahkan header ini bisa dengan menggunakan metode FromView. Namun saya tidak tahu apa sebabnya ketika saya mencoba menggunakan metode FromView (pada saat artikel ini ditulis Laravel Excel berada pada versi 3.1), muncul error yang tidak dapat saya temukan solusinya.
Saya menggunakan OS Windows 7 SP1 32bit, PHP 7.3.x, dan juga Laravel Excel 3.1 Akhirnya saya memutuskan untuk menggunakan metode FromQuery namun metode ini hanya akan mencetak hasil query saja tanpa menggunakan header. Penggunaan header ini berfungsi untuk mempermudah user untuk memahami file excel yang kita buat.
Berikut ini adalah contoh kode untuk mencetak header pada file excel hasil export program kita
<?php
namespace App\Exports;
use App\Model\Peserta;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
class PesertaQueryExport implements FromQuery, WithHeadings, ShouldAutoSize
{
public function __construct(string $name, string $bagian)
{
$this->name = $name;
$this->bagian = $bagian;
}
public function query()
{
return Peserta::query()->select('nama','nik')->where('nama','like', '%'.$this->name.'%')->where('bagian', 'like', '%'.$this->bagian.'%');
}
public function headings(): array
{
return [
'Nama',
'NIK',
];
}
}
Caranya mirip dengan fitur Auto Size tadi yaitu dengan menambahkan use
use Maatwebsite\Excel\Concerns\WithHeadings;
dan juga implements WithHeadings pada class
class PesertaQueryExport implements FromQuery, WithHeadings, ShouldAutoSize
Dan yang terakhir adalah menambahkan satu function tambahan yang berisi header yang kita gunakan.
public function headings(): array
{
return [
'Nama',
'NIK',
];
}
Pada contoh di atas, program akan menambahkan header Nama pada kolom 1 dan NIK pada kolom 2 sesuai dengan hasil query yang dicetak yaitu nama dan NIK.
Demikian penjelasan saya mengenai format kolom pada artikel Tutorial Laravel 5.5 - Laravel Excel Format Column Auto Size ini. Untuk segala pertanyaan dapat ditulis pada kolom komentar di bawah. Saya akan berusaha menjawab pertanyaan tersebut secepat yang saya bisa. Terima kasih
Post a Comment
Post a Comment