Kali ini saya akan membuat tutorial mengenai bagaimanasih cara Export ke Excel maupun PDF dari viewnya Laravel & Mysql?
Karena ada yang request maka kali ini akan saya buat Tutorialnya dan ada versi youtube juga, mari disimak sob
Pertama kalian harus sudah menyiapkan koneksi internet ya, karena kita akan install package yang diperlukan untuk project belajar export ini
Bahan :
- Laravel-Excel 3.1
- Laravel Dom-PDF by barryvdh
Yang harus diperhatikan :
- Disini tidak diajarkan cara install laravel [sudah diajarkan di : Install Laravel ]
- Tidak diajarkan cara buat controller, model [sudah diajarkan di : Belajar Laravel ]
- Yang diajarkan disini khusus untuk Export ke Excel atau PDF saja biar kita bisa fokus ya
- Buat yang masih ga paham, bisa lihat diyoutube atau tanya dikomentar
- Ingat, kalau merasa kurang jelas tonton video gilacoding berikut : //www.youtube.com/watch?v=OMknJY2pKBs
Oke lanjut, Kalau saya udah bikin project dengan nama belajar-export. Disini akan saya bagi 2 sesi jadi pertama sesi untuk Excel dulu setelah itu baru tutorial PDF
Baik, dimulai dari belajar Export Excel sebelum kita jalankan php artisan serve
, kita install dulu package untuk Excel dengan cara sebagai berikut :
- Buka dulu folder project kalian, buka cmd didalam project [sama seperti kalian menjalankan php artisan serve] ketik command dibawah ini
composer require maatwebsite/excel
- Tunggu saja sampai selesai [kecepatan tergantung koneksi internet]
- Buka file config\app.php , pada bagian
providers
paste ini dibagian bawah
Maatwebsite\Excel\ExcelServiceProvider::class,
- Masih di config\app.php, sekarang pada bagian
aliases
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
- Kita publish config dari maatwebsite-excel dengan cara menjalankan command ini
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
Untuk instalasi package excel sudah selesai, lanjut gimana cara mengexport dari data yang ada ditable Mysql kita :
Okay, setelah sebelumnya kita membuat sebuah Fitur dimana kita bisa Export Pdf dari Laravel, kali ini kita akan membuat Fitur untuk
composer require maatwebsite/excel2pada Laravel.
Nah, Fitur ini tentunya akan memudahkan kita untuk menginput Data yang banyak kedalam Sistem kita, jadi kita tidak harus memasukkan data tersebut satu-persatu. Cukup satu kali
composer require maatwebsite/excel3, dan semua Data sudah ter-input di
composer require maatwebsite/excel4kita.
Daftar Isi
Penjelasan Sistem Import Excel pada Laravel
Untuk membuat sistem Import ini, ada beberapa hal yang akan kita lakukan. Pertama, kita akan menginstal
composer require maatwebsite/excel5kita, setelah itu kita siapkan
composer require maatwebsite/excel4dan
composer require maatwebsite/excel7. Setelah selesai
composer require maatwebsite/excel4dan
composer require maatwebsite/excel7, kita tinggal install sebuah
'providers' => [ Maatwebsite\Excel\ExcelServiceProvider::class, ] 'aliases' => [ 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ]0untuk Import Excel ini dan di-setting sesuai kebutuhan kita.
Praktek
Disini kita akan mempraktekkan sedari instalasi, untuk detail dari instalasi sampai membuat Database bisa kalian lihat di Atikel-artikel sebelumnya.
Instalasi Laravel via Composer
Disini kita bisa install Laravel 8 kita, untuk nama dari Projek yang kita install ini bebas sesuai keinginan Teman-teman. Setelah selesai
'providers' => [ Maatwebsite\Excel\ExcelServiceProvider::class, ] 'aliases' => [ 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ]1, jangan lupa langsung buka Folder dimana
composer require maatwebsite/excel5ini kita
'providers' => [ Maatwebsite\Excel\ExcelServiceProvider::class, ] 'aliases' => [ 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ]1. Bisa install dengan syntax dibawah ini.
composer create-project laravel/laravel:^8.0 import-excel
jangan lupa setelah selesai instalasi jalankan Laravel nya ya dengan
'providers' => [ Maatwebsite\Excel\ExcelServiceProvider::class, ] 'aliases' => [ 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ]4
Install Liblary
Setelah selesai melakukan instalasi Laravel, berikutnya kita akan menginstall Liblary untuk
'providers' => [ Maatwebsite\Excel\ExcelServiceProvider::class, ] 'aliases' => [ 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ]5kita. Kalian bisa melihat detail dokumentasi dari Liblary ini disini docs.laravel-excel.com/3.1/getting-started/installation.html. Langsung saja, instalasi dengan syntax dibawah ini
composer require maatwebsite/excel
Setelah selesai instalasi, buka file config/app.php lalu tambahkan 2 syntax dibawah ini didalam
'providers' => [ Maatwebsite\Excel\ExcelServiceProvider::class, ] 'aliases' => [ 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ]6dan
'providers' => [ Maatwebsite\Excel\ExcelServiceProvider::class, ] 'aliases' => [ 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ]7
'providers' => [ Maatwebsite\Excel\ExcelServiceProvider::class, ] 'aliases' => [ 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ]
Setelah itu, kalian bisa menjalankan syntax dibawah ini untuk membuat sebuah
'providers' => [ Maatwebsite\Excel\ExcelServiceProvider::class, ] 'aliases' => [ 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ]8file khusus untuk excel yhang kalian
'providers' => [ Maatwebsite\Excel\ExcelServiceProvider::class, ] 'aliases' => [ 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ]9nanti. File nya akan bernama
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config0
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config
Buat Database
Berikutnya, tentu kita akan membuat dan setting
composer require maatwebsite/excel4untuk mealkukan import Excel pada Laravel kita. Lansgung saja pertama buat
composer require maatwebsite/excel4dulu dengan nama
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config3
Pastikan kalian mengatur
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config4 kalian agar connect ke database yang sudah kita buat
Setelah selesai membuat
composer require maatwebsite/excel4, berikutnya kita atur
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config6,
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config7,
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config8dan
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config9nya.
Setting Model, dan Migrations
Berikutnya, kita akan setting
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config6kita. Tapi sebelum setting jelas kita harus membuat
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config6terlebih dahulu.
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config6yang akan kita buat ini nantinya akan disertai dengan
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config7dan
class Employee extends Model { use HasFactory; protected $guarded = ['id']; }4.
Pastikan teman-teman sudah install Exstensi
class Employee extends Model { use HasFactory; protected $guarded = ['id']; }5 lalu kalian cukup klik
class Employee extends Model { use HasFactory; protected $guarded = ['id']; }6. Lalu pilih
class Employee extends Model { use HasFactory; protected $guarded = ['id']; }7, Setelah itu buat Nama Model
class Employee extends Model { use HasFactory; protected $guarded = ['id']; }8, setelah itu akan ada pilihan untuk membuat
class Employee extends Model { use HasFactory; protected $guarded = ['id']; }9? Kita pilih
public function up[] { Schema::create['employees', function [Blueprint $table] { $table->id[]; $table->string['name']; $table->string['works']; $table->timestamps[]; }]; }0 saja. Setelah itu kita sudah memiliki Migrations, Model, dan Controller yang kita butuhkan.
Disini kita akan mulai setting Model terlebih dahulu, cukup tambahkan syntax
public function up[] { Schema::create['employees', function [Blueprint $table] { $table->id[]; $table->string['name']; $table->string['works']; $table->timestamps[]; }]; }1 saja.
class Employee extends Model { use HasFactory; protected $guarded = ['id']; }
Setelah itu, kita setting migrations kita. Disini kita akan membuat
public function up[] { Schema::create['employees', function [Blueprint $table] { $table->id[]; $table->string['name']; $table->string['works']; $table->timestamps[]; }]; }2ini, cukup buat berisi Nama dan Pekerjaan saja
public function up[] { Schema::create['employees', function [Blueprint $table] { $table->id[]; $table->string['name']; $table->string['works']; $table->timestamps[]; }]; }
Nah, apabila sudah jangan lupa jalankan syntax untuk migrasi
composer require maatwebsite/excel4kita dengan syntax
php artisan migrate
Setting Import
Nah, sekarang kita akan terfokus kepada File yang akan kita gunakan untuk Import, File import ini kurang lebih seperti File yang akan kita akses agar Sistem Import Excel pada Laravel kita berjalan.
Pertama, buat terlebih dahulu dengan syntax
php artisan make:import EmployeeImport --model=Employee
Setelah itu kalian akan mendapatkan sebuah File baru bernama
public function up[] { Schema::create['employees', function [Blueprint $table] { $table->id[]; $table->string['name']; $table->string['works']; $table->timestamps[]; }]; }4, buka File itu lalau tambahkan syntax didalam
public function up[] { Schema::create['employees', function [Blueprint $table] { $table->id[]; $table->string['name']; $table->string['works']; $table->timestamps[]; }]; }5 jadi seperti ini
return new Employee[[ 'name' => $row[0], 'works' => $row[1] ]];
Setting View
Setelah selesai mensetting Import, berikutnya kita kan setting Tampilan atau View. Ditampilan ini akan berisi dua Hal, yang pertama adalah
public function up[] { Schema::create['employees', function [Blueprint $table] { $table->id[]; $table->string['name']; $table->string['works']; $table->timestamps[]; }]; }6untuk menampilkan Data, dan yang kedua adalah
public function up[] { Schema::create['employees', function [Blueprint $table] { $table->id[]; $table->string['name']; $table->string['works']; $table->timestamps[]; }]; }7untuk Menginputkan Data. Sekarang, buat file
public function up[] { Schema::create['employees', function [Blueprint $table] { $table->id[]; $table->string['name']; $table->string['works']; $table->timestamps[]; }]; }8 didalam
public function up[] { Schema::create['employees', function [Blueprint $table] { $table->id[]; $table->string['name']; $table->string['works']; $table->timestamps[]; }]; }9
index.blade.php
Import ExcelTable
Name Work As @foreach [$employees as $item]@endforeach {{ $item->name }} {{ $item->works }} @csrf Import
Setting Controller
Nah di Controller ini, kita akan membuat 2 Fungsi. Pertama fungsi untuk menampilkan Tampilan kita, yang kedua adalah fungsi untuk mengakses
php artisan migrate0kita. Kurang lebih akan seperti ini
composer require maatwebsite/excel0
Setting Web.php
Terakhir yang harus kita setting adalah file routes/web.php, didalam File ini kita akan mengakses link untuk Menampilkan data menggunakan
php artisan migrate1dan mengirim data menggunakan
php artisan migrate2, jangan lupa diarahkan ke
php artisan migrate3 yang kita butuhkan.
composer require maatwebsite/excel1
Penggunaan
Sekarang kita tinggal mempraktekkan Sistem import excel pada Laravel kita. Ada hal yang harus diperhatikan dalam import excel pada Laravel ini, yaitu isi dari File Excel yang kita Import.
Didalam File Excel yang kita Import, akan berbentuk tabel, dengan detail Row sesuai dengan EmployeeImport kita. Kalau dilihat di EmployeeImport memiliki 2 Row, pertama untuk name, kedua untuk works, detialnya seperti ini