Assalamualaikum Warohmatulloh Wabarokatuh, mungkin ini adalah salah satu tulisan yang banyak diminta oleh pembaca blog atau penonton kanal Youtube Kawan Koding. Yap, export excel di Laravel ini menjadi salah satu topik yang sangat banyak diinginkan untuk dibahas.
Tidak heran juga, karena hampir dalam setiap aplikasi kita akan berurusan dengan yang namanya laporan. Kebanyakan laporan biasanya berbentuk spreadsheet atau excel ini memang. Jadi sangat wajar jika banyak permintaan tentang topik ini. Langsung aja yuk kita mulai.
Oke, saya anggap posisinya sekarang kawan – kawan sudah punya proyek Laravel baru. Selanjutnya, lakukan pengaturan untuk database kawan – kawan dan jalankan migration bawaan dari Laravel.
Membuat Data Contoh
Lanjut ya, kita akan gunakan tabel users
bawaan dari Laravel sebagai kelinci percobaan kita. Karena semua sudah tersedia dari pertama instal, sekarang kita akan buat contoh data menggunakan factory. Pertama, jalankan Tinker.
php artisan tinker
Kemudian akan muncul tampilan seperti ini.
Setelah kita masuk Tinker, kita bisa jalankan Factory melalui Tinker. Gunakan perintah dibawah ini untuk membuat data contoh sebanyak 500 data.
factory(App\User::class, 500)->create();
Setelah dijalankan maka akan ada 500 data yang terbuat di dalam tabel users
.
Membuat Fungsi Export Excel Laravel
Setelah kita memiliki data untuk diekspor, sekarang saatnya kita buat fungsi untuk export excelnya. Kita akan gunakan package Laravel Excel dari Maatwebsite. Langsung saja kita instal packagenya.
Sebelum menginstal, berikut adalah kebutuhan untuk dapat menginstal package Laravel Excel terbaru.
- PHP:
^7.0
- Laravel:
^5.5
- PhpSpreadsheet:
^1.6
- Ekstensi PHP
php_zip
diaktifkan - Ekstensi PHP
php_xml
diaktifkan - Ekstensi PHP
php_gd2
diaktifkan - Ekstensi PHP
php_iconv
diaktifkan - Ekstensi PHP
php_simplexml
diaktifkan - Ekstensi PHP
php_xmlreader
diaktifkan - Ekstensi PHP
php_zlib
diaktifkan
composer require maatwebsite/excel
Setelah instalasi selesai, secara otomatis akan terdaftar pada aplikasi Laravel oleh auto-discover
.
Jika kawan – kawan butuh untuk menerbitkan file konfigurasinya, jalankan perintah ini.
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
Oke, untuk membuat fungsi export, bisa kita mulai dengan membuat class export terlebih dahulu. Gunakan perintah artisan.
php artisan make:export UserExport --model=User
File yang dihasilkan dapat ditemukan di app/Exports/UserExport.php
. Kemudian dalam file tersebut buat kode seperti ini.
<?php
namespace App\Exports;
use App\User;
use Maatwebsite\Excel\Concerns\FromCollection;
class UserExport implements FromCollection
{
/**
* @return \Illuminate\Support\Collection
*/
public function collection()
{
return User::all();
}
}
Kita butuh sebuah Controller untuk membuat fungsi export.
php artisan make:controller UserController
Lalu buat kode seperti dibawah ini untuk membuat fungsi exportnya.
<?php
namespace App\Http\Controllers;
use App\Exports\UserExport;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
class UserController extends Controller
{
public function export()
{
return Excel::download(new UserExport, 'users.xlsx');
}
}
Bagian terakhir supaya kita bisa menikmati fitur export ini tentunya adalah mendaftarkan route
untuk menjalankan fungsi export data ini.
Route::get('user/export', 'UserController@export');
Kemudian kita bisa akses URL http://localhost:8000/user/export
dan saat diakses otomatis akan mengunduh file Excel. Kurang lebih datanya seperti ini.
Sekian tulisan tentang cara membuat export Excel di Laravel. Semoga bermanfaat.
Wassalamualaikum Warohmatulloh Wabarokatuh.
Sumber ikon Excel : pngtree.
Pingback: Membuat Import Excel di Laravel dengan Laravel Excel - Kawan Koding