Tutorial Laravel: Import Excel Menggunakan Laravel Excel

Dalam pengembangan aplikasi web, fitur impor Excel sangat penting untuk mengelola data dalam jumlah besar dengan mudah. Laravel Excel adalah salah satu package terbaik yang menyediakan solusi praktis untuk menangani proses import dan export tersebut.

Dengan fitur yang lengkap dan kemudahan integrasi,  package ini membantu developer meningkatkan efisiensi dan performa aplikasi.

Pada artikel kali ini, akan dibahas bagaimana mengimpor data Excel di Laravel dengan mudah yang bisa anda ikuti, berikut selengkapnya:

Menginstal Laravel Excel di Laravel 10

Langkah pertama dalam proses import data menggunakan Laravel Excel  adalah menginstalnya ke dalam proyek Laravel. Anda bisa menjalankan perintah berikut di terminal:

composer require maatwebsite/excel

Setelah instalasi selesai, Anda bisa memverifikasi bahwa paket telah terinstal dengan menambahkan service provider secara otomatis (jika Anda menggunakan Laravel versi terbaru, langkah ini biasanya tidak perlu dilakukan):

MaatwebsiteExcelExcelServiceProvider::class,

Laravel Excel menyediakan berbagai fitur seperti impor data, export data, styling file Excel, serta dukungan untuk file besar.

Konfigurasi Laravel Excel

Setelah instalasi, langkah kedua adalah melakukan konfigurasi. Alat ini dapat dikonfigurasi melalui file config/excel.php. Anda dapat menyesuaikan beberapa opsi konfigurasi sesuai kebutuhan aplikasi, seperti:

  • Format File: Untuk menentukan format file default (xlsx, csv, dll.).
  • Ukuran File: Untuk mengatur batas maksimum ukuran file yang dapat di-upload.
  • Pengaturan Lainnya: Untuk menyesuaikan pembatas, heading row, atau encoding file.

Sebagai contoh, jika anda ingin mengubah ukuran maksimum file yang diizinkan, anda dapat menambahkan validasi khusus pada file upload di controller.

Membuat Controller untuk Fitur impor

Langkah berikutnya adalah membuat controller untuk menangani proses impor file Excel. Anda bisa membuatnya menggunakan perintah Artisan:

php artisan make:controller ImportController

Di dalam controller, tambahkan method untuk menerima file upload, memprosesnya, dan menyimpan data ke database:

use MaatwebsiteExcelFacadesExcel;

use AppImportsUsersImport;

public function import(Request $request) {

    $request->validate([

        ‘file’ => ‘required|mimes:xlsx,csv’,

    ]);

    Excel::import(new UsersImport, $request->file(‘file’));

    return back()->with(‘success’, ‘Data berhasil diimport!’);

}

Membuat Route untuk impor

Buat route baru di file web.php untuk menghubungkan form upload dengan controller:

use AppHttpControllersImportController;

Route::post(‘/import-excel’, [ImportController::class, ‘import’])->name(‘import.excel’);

Tambahkan juga form HTML sederhana untuk upload file pada view anda:

<form action=”{{ route(‘import.excel’) }}” method=”POST” enctype=”multipart/form-data”>

    @csrf

    <input type=”file” name=”file” required>

    <button type=”submit”>Import</button>

</form>

Membuat Class Import

Laravel Excel membutuhkan kelas khusus untuk memproses file yang diimpor. Buatlah kelas menggunakan perintah artisan:

php artisan make:import UsersImport –model=User

Modifikasi kelas ini untuk menyesuaikan kolom dalam file Excel dengan model di database:

use MaatwebsiteExcelConcernsToModel;

use AppModelsUser;

class UsersImport implements ToModel {

    public function model(array $row) {

        return new User([

            ‘name’ => $row[0],

            ’email’ => $row[1],

            ‘password’ => bcrypt($row[2]),

        ]);

    }

}

Menambahkan Fitur Export

Laravel Excel juga mendukung fitur export data dengan mudah. Buat class export menggunakan perintah berikut:

php artisan make:export UsersExport –model=User

Implementasikan kelas ini untuk memilih data yang akan diexport:

use MaatwebsiteExcelConcernsFromCollection;

use AppModelsUser;

class UsersExport implements FromCollection {

    public function collection() {

        return User::all();

    }

}

Tambahkan method di controller untuk menangani export:

use MaatwebsiteExcelFacadesExcel;

public function export() {

    return Excel::download(new UsersExport, ‘users.xlsx’);

}

Menangani Validasi dan Error Handling

Untuk memastikan file Excel anda valid sebelum diproses, tambahkan validasi di controller dengan cara:

$request->validate([

    ‘file’ => ‘required|mimes:xlsx,csv|max:2048’,

]);

Jika file tidak sesuai dengan format, kembalikan pesan error ke pengguna:

return back()->withErrors(‘File tidak valid!’);

Pengujian Fitur impor

Uji fitur impor anda dengan langkah berikut:

  1. Gunakan file Excel berisi data dummy untuk menguji hasil impor ke database.
  2. Pastikan data di database sesuai dengan yang diharapkan.
  3. Lakukan debug jika terjadi error, misalnya jika ada kolom yang tidak cocok.

Gunakan Laravel Excel untuk Pengembangan Aplikasi

Laravel Excel adalah package andalan untuk menangani import dan export file Excel di Laravel. Dengan langkah-langkah yang telah dijelaskan, Anda dapat mengintegrasikan fitur ini dengan mudah ke dalam aplikasi. Untuk pengembangan lebih lanjut, pertimbangkan menggunakan fitur queue untuk menangani file besar dan meningkatkan performa aplikasi Anda.

Pemahaman tentang fitur queue dan fitur Laravel Excel Lainnya dapat anda pelajari melalui Kursus Laravel Bersetifikat milik Course-Net, tersedia dari kelas pemula hingga mahir.

Anda bisa langsung belajar dengan coach praktisi yang telah berpengalaman lebih dari 5 tahun dengan layanan re-coaching, belajar sampai bisa, bahkan seumur hidup.

Kursus Experience Based Learning yang telah mendapatkan 4 (empat) penghargaan internasional ini bisa anda cicil hingga 18 kali.

100.000+ alumni dengan 472+ corporate clients telah merasakan kepuasan yang tinggi dibuktikan dengan bintang 4.9 dari 15.000+ ulasan di google review. Kini, giliran anda!

Belajar IT di Course-Net, Sampai bisa!

Masih Ga percaya ? Di Course-Net kamu Belajar Langsung Oleh Coach Praktisi Aktif Berpengalaman

Share: