Cara Import Data Excel di Laravel dengan Library Laravel-Excel

Share:

Halo semuanya, kembali lagi di sahretech. Pada kesempatan kali ini kita bersama-sama akan belajar cara import data excel ke database pada laravel dengan library Laravel-Excel. Bagaimana caranya?, ayo ikuti selengkapnya di bawah ini.


Salah satu fitur yang cukup membantu user di dalam aplikasi pendataan adalah fitur export dan import data, kedua fitur tersebut sangat memudahkan pengguna apalagi jika data yang dimiliki sangat banyak. Laravel-Excel adalah salah satu library yang bisa kita gunakan untuk membuat fitur import atau export data excel. Untuk pembahasan bagaimana cara export data excel di laravel, sudah saya tulis tutorialnya di link berikut ini https://www.sahretech.com/2020/11/cara-menggunakan-library-excel-di.html

Cara menggunakan library-excel untuk membuat fitur import data excel cukup mudah. Pada tutorial kali ini kita akan membuat sebuah project laravel sederhana yang hanya memiliki satu tampilan, lalu di dalam tampilan tersebut terdapat tabel user dan tombol import data excel. Data yang akan kita import kali ini adalah data user. Lalu kita bersama-sama akan membuat prosesnya dan menampilkan hasilnya pada halaman yang sama.

Baca Artikel Lain ✨
📰 1. 5 Alasan Kenapa Anda Wajib Menggunakan Wordpress untuk Mengembangkan Website yang Berhasil read more
📰 2. Cara Proteksi Halaman Login Wordpress dengan Captcha Moodle read more
📰 3. Apa itu Brute Force Attack dan Berikut Tips Manjur Untuk Mencegahnya Komputer read more


Cara Membuat Import Data ke Database pada Laravel

Jika kalian sudah terbiasa menggunakan laravel dan hanya ingin belajar bagaimana cara menggunakan library ini, maka kalian bisa langsung menuju ke tahap 3 dan seterusnya. Tapi disarankan tetap mengikuti tahapan demi tahapan agar lebih mudah dalam men-tracking kesalahan dan error.


1. Install Laravel

1.1 Kalian dapat menggunakan project laravel yang sudah ada atau menginstall project laravel baru. Siapkan lokasi dimana project ini akan diinstall, selanjutnya copy perintah di bawah ini dan jalankan di dalam cmd atau terminal untuk mengunduh fresh laravel.



composer create-project --prefer-dist laravel/laravel:^7.0 laravel_excel


1.2 Masuk ke dalam folder project yang telah kalian install. Bisa menggunakan perintah cd laravel_excel pada cmd atau terminal. Lalu jalankan php artisan serve. Hasilnya akan terlihat seperti gambar di bawah ini.

cara import data dengan laravel excel
Laravel 7




2. Membuat Database dan Migrasi

2.1 Setelah instalasi berhasil, selanjutnya buatlah sebuah database baru. Caranya hidupkan xampp service kalian, lalu masuk ke phpmyadmin dan buatlah sebuah database baru dengan nama laravel.

membuat database laravel
Membuat database laravel



2.2 Selanjutnya masuk ke folder project kalian dengan menggunakan cmd. Lalu jalankan perintah php artisan migrate setelah dijalankan maka laravel akan membuat tabel-tabel baru di dalam database phpmyadmin.

laravel excel
Tabel-tabel yang berhasil dibuat




Kalian bisa cek kembali database laravel yang telah kita buat sebelumnya. Maka akan tampak ada beberapa tabel baru yang secara otomatis dibuat. Jika kalian bingung dari mana tabel-tabel tersebut berasal, dan bagaimana cara mengganti database laravel dengan database lain, maka kalian bisa membaca pemabahasannya di link berikut ini:

Intinya kita hanya akan fokus pada tahapan import datanya saja. Untuk hal-hal yang kurang kalian mengerti, bisa kalian langsung tanyakan di kolom komentar di bawah ini. Atau langsung mencari artikelnya di pencarian blog ini.


3. Install Laravel-Excel dan Melakukan Konfigurasi

3.1 Masuk ke direktori project laravel_excel kalian dengan menggunakan cmd atau terminal. Lalu jalankan perintah di bawah ini untuk mengunduh library laravel-excel.


composer require maatwebsite/excel

Setelah instalasi selesai dilakukan, selanjutnya kita akan melakukan sedikit konfigurasi agar library ini dapat digunakan.

3.2 Bukalah file app.php di dalam folder config. Tujuannya adalah untuk mendaftarkan library-excel agar mudah digunakan. Cari kata 'providers', lalu tambahkan script seperti di dalam providers di bagian paling bawah.
 

'providers' => [ /* * Package Service Providers... */ Maatwebsite\Excel\ExcelServiceProvider::class, ]

3.3 Masih di dalam file yang sama, silahkan cari kata 'aliases'. Lalu tambahkan baris kode berikut ini di bagian paling bawah. Lalu save file.


'aliases' => [ ... 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ]

Sampai tahap ini kalian sudah berhasil menginstall dan melakukan konfigurasi laravel-excel. Cukup melelahkan?. Silahkan istirahat sejenak, sedikit seruput minum kopi lalu kita lanjutkan ke tahap berikutnya.

4. Membuat File Import

Selanjutnya kita akan membuat file import, silahkan jalankan perintah di bawah ini dengan menggunakan cmd atau terminal.
 

php artisan make:import UserImport --model=User

Selanjutnya sebuah file UserImport.php otomatis dibuat di dalam folder App/Imports. Silahkan buka file tersebut. dan isi dengan script yang ada di bawah ini.
 

<?php
namespace App\Imports; use App\User; //model user use Maatwebsite\Excel\Concerns\ToModel; use Hash; //membuat text menjadi terenkripsi use Maatwebsite\Excel\Concerns\WithHeadingRow; //digunakan untuk menandai excel dengan header class UserImport implements ToModel, WithHeadingRow { /** * @param array $row * * @return \Illuminate\Database\Eloquent\Model|null */ public function model(array $row) { return new User([ 'name' => $row['name'], 'email' => $row['email'], 'password' => Hash::make($row['password']), ]); } }

Nantinya kita harus menyamakan urutan data yang ada pada script di atas dengan urutan data yang ada pada header di dalam file excel. Silahkan perhatikan dan samakan formatnya seperti gambar di bawah ini.

membuat laravel excel
Contoh format excel



Kira-kira seperti itulah format file excel yang akan kita gunakan untuk melakukan import data nantinya. Silahkan siapkan dummy datanya dalam bentuk excel.


5. Membuat Controller

1.1 Buatlah sebuah controller baru. Silahkan jalankan perintah berikut ini untuk membuat controller baru.
 

php artisan make:controller UserController

1.2 Buka file UserController.php dan isi file tersebut dengan script yang ada di bawah ini.


<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Imports\UserImport; use Maatwebsite\Excel\Facades\Excel; //library excel use App\User; //model user class UserController extends Controller { public function index(){         //mengambil data user $data = User::all();         //menampilkan halaman user dan mengirim variabel data berisi data user return view('user', ['data' => $data]); } public function import(Request $request){ //melakukan import file Excel::import(new UserImport, request()->file('file'));         //jika berhasil kembali ke halaman sebelumnya return back(); } }

Kita membaut dua fungsi, fungsi index berguna untuk menampilkan halaman data user. Lalu fungsi import digunakan untuk melakukan import ke database. Untuk penjelasan lengkapnya sudah saya tulis pada script di atas. Jika masih ada kendala, silahkan tanya langsung di kolom komentar di bawah ini.


6. Membuat File index.blade.php

Buatlah sebuah file baru dengan nama user.blade.php. Kemudian copy script di bawah ini dan pastekan ke dalam file tersebut.
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous">
</head>

<body>
    <div class="container mt-4">
        <form action="{{ url('import') }}" method="POST" enctype="multipart/form-data">
            @csrf
            <div class="row">
                <div class="col-lg-5">
                    <input type="file" name="file" class="form-control" required>
                </div>
                <div class="col-lg-1">
                    <button class="btn btn-success">Submit</button>
                </div>
            </div>
        </form>
        <br><br>
        <table class="table table-striped">
            <thead>
                <tr>
                    <td>No</td>
                    <td>Name</td>
                    <td>Email</td>
                </tr>
            </thead>
            <tbody>
                @foreach ($data as $k => $item)
                <tr>
                    <td>{{ $k+1 }}</td>
                    <td>{{ $item->name }}</td>
                    <td>{{ $item->email }}</td>
                </tr>
                @endforeach
            </tbody>
        </table>
    </div>
</body>

</html>


7. Menambahkan Script di web.php

Silahkan buka file web.php di dalam folder routes. Lalu tambahkan script di bawah ini



Route::post('/import', 'UserController@import'); Route::get('/user', 'UserController@index');


Semua koding dan konfigurasi telah kita jalankan bersama-sama. Saatnya kita lakukan uji coba, silahkan jalankan project kalian dengan menjalankan perintah php artisan serve. Lalu buka url 127.0.0.1:8000/user

cara import excel di laravel
Tampilan Akhir



import excel di laravel
Hasil Akhir

Sekian tutorial cara import data excel di laravel dengan library laravel-excel. Semoga artikel singkat ini dapat bermanfaat bagi para pembaca sekalian. Jika ada kesulitan, silahkan tanyakan langsung di kolom komentar di bawah ini. Sampai jumpa di tutorial keren lainnya.


1 comment:

  1. Hallo, terima kasih untuk tutorialnya, sangat membantu dan sangat bermanfaat. Saya ingin bertanya, pada saat saya melakukan submit file excel, muncul pesan error "Could not find zip member zip", kenapa ya? Saya sudah mencari di beberapa sumber namun permsalahan belum selesai. Mohon bantuannya, terima kasih

    ReplyDelete

Jangan lupa kasih komentar ya!. Karena komentar kalian membantu kami menyediakan informasi yang lebih baik

Tidak boleh menyertakan link atau promosi produk saat berkomentar. Komentar tidak akan ditampilkan. Hubungi 081271449921(WA) untuk dapat menyertakan link dan promosi