Cara menggunakan laravel excel sheet name

Cara menggunakan laravel excel sheet name

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.

Daftar Isi

  • Penjelasan Sistem Import Excel pada Laravel
  • Praktek
    • Instalasi Laravel via Composer
    • Install Liblary
    • Buat Database
    • Setting Model, dan Migrations
    • Setting Import
    • Setting View
    • Setting Controller
    • Setting Web.php
  • Penggunaan

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

Cara menggunakan laravel excel sheet name

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

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//dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">

    <title>Import Excel</title>
</head>

<body>
    <div class="container mt-5">
        <h2 class="mt-5 display-4">Table</h2>
        <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//dist/js/bootstrap.bundle.min.js"
        integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous">
    </script>
</body>

</html>

Cara menggunakan laravel excel sheet name

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

Cara menggunakan laravel excel sheet name

Jadi Row A untuk name, dan Row B untuk works. Pastikan saat ingin Import tidak salah Row ya.

Selanjutnya tinggal lakukan Import File ini

Cara menggunakan laravel excel sheet name