
Okay, setelah sebelumnya kita membuat sebuah Fitur dimana kita bisa Export Pdf dari Laravel, kali ini kita akan membuat Fitur untuk Import Excel
pada 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 Import
, dan semua Data sudah ter-input di Database
kita.
Penjelasan Sistem Import Excel pada Laravel
Untuk membuat sistem Import ini, ada beberapa hal yang akan kita lakukan. Pertama, kita akan menginstal Projek Laravel
kita, setelah itu kita siapkan Database
dan Tampilannya
. Setelah selesai Database
dan Tampilannya
, kita tinggal install sebuah Liblary
untuk 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 install
, jangan lupa langsung buka Folder dimana Projek Laravel
ini kita install
. 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 php artisan serve
Install Liblary
Setelah selesai melakukan instalasi Laravel, berikutnya kita akan menginstall Liblary untuk Sistem Import Excel
kita. 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
dan aliases
'providers' => [
Maatwebsite\Excel\ExcelServiceProvider::class,
]
'aliases' => [
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]
Setelah itu, kalian bisa menjalankan syntax dibawah ini untuk membuat sebuah config
file khusus untuk excel yhang kalian import
nanti. File nya akan bernama excel.php
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config
Buat Database
Berikutnya, tentu kita akan membuat dan setting Database
untuk mealkukan import Excel pada Laravel kita. Lansgung saja pertama buat Database
dulu dengan nama data_karyawan

Pastikan kalian mengatur .env
kalian agar connect ke database yang sudah kita buat
Setelah selesai membuat Database
, berikutnya kita atur Model
, Controller
, View
dan Migrations Database
nya.
Setting Model, dan Migrations
Berikutnya, kita akan setting Model
kita. Tapi sebelum setting jelas kita harus membuat Model
terlebih dahulu. Model
yang akan kita buat ini nantinya akan disertai dengan Controller
dan Migrations
.
Pastikan teman-teman sudah install Exstensi Laravel Artisan
lalu kalian cukup klik Ctrl + Shift + P
. Lalu pilih >Make Model
, Setelah itu buat Nama Model Employee
, setelah itu akan ada pilihan untuk membuat Migrations, Resource, dan Factory
? Kita pilih Yes
saja. Setelah itu kita sudah memiliki Migrations, Model, dan Controller yang kita butuhkan.
Disini kita akan mulai setting Model terlebih dahulu, cukup tambahkan syntax protected $guarded = ['id']
saja.
class Employee extends Model
{
use HasFactory;
protected $guarded = ['id'];
}
Setelah itu, kita setting migrations kita. Disini kita akan membuat Data Karyawan (Employee)
ini, 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 Database
kita 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 EmployeeImport.php
, buka File itu lalau tambahkan syntax didalam return new Employee
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 tabel
untuk menampilkan Data, dan yang kedua adalah Form
untuk Menginputkan Data. Sekarang, buat file index.blade.php
didalam views
index.blade.php
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<title>Import Excel</title>
</head>
<body>
<div class="container mt-5">
<h1 class="mt-5 display-4">Table</h1>
<table class="table">
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Work As</th>
</tr>
</thead>
<tbody>
@foreach ($employees as $item)
<tr>
<td>{{ $item->name }}</td>
<td>{{ $item->works }}</td>
</tr>
@endforeach
</tbody>
</table>
<div class="row">
<div class="col-sm-3">
<form action="/" method="post" enctype="multipart/form-data">
@csrf
<input type="file" name="excel" class="form-control" placeholder="Recipient's username"
aria-label="Recipient's username" aria-describedby="button-addon2">
<button class="btn btn-primary mt-3" type="submit" id="button-addon2">Import</button>
</form>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous">
</script>
</body>
</html>

Setting Controller
Nah di Controller ini, kita akan membuat 2 Fungsi. Pertama fungsi untuk menampilkan Tampilan kita, yang kedua adalah fungsi untuk mengakses EmployeeImport
kita. Kurang lebih akan seperti ini
public function index()
{
return view('index', [
'employees' => Employee::all()
]);
}
public function import(Request $request)
{
Excel::import(new EmployeeImport, $request->excel);
return redirect('/');
}
Setting Web.php
Terakhir yang harus kita setting adalah file routes/web.php, didalam File ini kita akan mengakses link untuk Menampilkan data menggunakan get
dan mengirim data menggunakan post
, jangan lupa diarahkan ke Fungsi Controller
yang kita butuhkan.
Route::get('/', [EmployeeController::class, 'index']);
Route::post('/', [EmployeeController::class, 'import']);
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

Jadi Row A untuk name, dan Row B untuk works. Pastikan saat ingin Import tidak salah Row ya.
Selanjutnya tinggal lakukan Import File ini
