Langsung ke konten utama

Cara Mudah Impor Data Excel ke Database Menggunakan Laravel Excel

Pendahuluan

Bayangin lagi ngerjain fitur sederhana, tapi client tiba-tiba minta fitur upload file Excel yang isinya ribuan baris data user. Awalnya pasti mikir bakal ribet banget harus parse CSV manual atau pakai library native PHP yang bikin pusing, sampai akhirnya nemu paket maatwebsite/excel yang penyelamat banget. Saya sering pakai ini karena API-nya intuitif banget buat developer yang ingin kerja cepat tapi kodenya tetep rapi.

Tips & Best Practices

Di banyak project, biasanya saya mulai dari bikin Import class lewat artisan agar struktur direktori tetap konsisten. Kedua, selalu manfaatkan ToModel atau ToCollection sesuai kebutuhan, karena kalau datanya sangat besar, ToModel jauh lebih irit memory. Terakhir, jangan lupa validasi data sebelum masuk database supaya nggak ada data sampah yang bikin aplikasi error belakangan.

Contoh Kode

Saat butuh mapping kolom Excel ke field database, kodenya bakal kelihatan kayak gini:
public function model(array $row) { return new User(['name' => $row[0], 'email' => $row[1]]); }
Contoh di atas biasanya saya taruh di UserImport.php agar controller tetap bersih dan fokus menangani request upload saja.

Variasi Implementasi

Ada dua pendekatan yang sering saya bandingkan: pakai Queue atau eksekusi langsung. Kalau datanya di bawah 100 baris, eksekusi langsung via Excel::import() sudah cukup. Tapi kalau datanya ribuan, saya pasti pakai withChunkReading() atau kirim prosesnya ke Queue biar user nggak nunggu loading page sampai timeout.

Kesalahan Umum

  1. Lupa nambahin validasi mimes:xlsx,csv di request validator, ujung-ujungnya aplikasi crash karena file nggak didukung.
  2. Nggak pakai try-catch pas eksekusi impor, jadi pas error tengah jalan, data yang masuk jadi berantakan.
  3. Hardcoding indeks array $row[0] tanpa ngecek kalau format file user berubah-ubah.
  4. Membiarkan memory limit habis karena maksa impor file ukuran jumbo tanpa chunking.
  5. Lupa nambahin log atau notifikasi kalau proses impor gagal, bikin user bingung kenapa datanya nggak muncul-muncul.

Ringkasan

Intinya, fitur impor Excel bukan cuma soal mindahin data ke database, tapi soal gimana kita nanganin ekspektasi user dan performa server. Dengan Laravel Excel, hidup jadi lebih tenang karena kodingan kita nggak harus jadi spaghetti yang susah di-maintain pas project sudah scale up.

Komentar

Postingan populer dari blog ini

Fungsi lain tombol penerima panggilan di headset

Kegunaan tombol yang berada di headset utamanya adalah untuk menerima panggilan dan pause panggilan. Dan headset itu sendiri, kadang juga digunakan untuk mendengarkan music, digunakan bersama saat main game, supaya suara yang dikeluarkan oleh gadget tidak terlalu keras sehingga mengurangi beban gadget. Dengan mengurangi beban gadget, ada beberapa yang beranggapan kalau itu akan menghemat batere.

Cara Reset Password Database MySQL Menggunakan Laragon

Cara Reset Password Database MySQL Menggunakan Laragon Laragon adalah salah satu lingkungan pengembangan lokal (local development environment) yang populer di antara para pengembang web. Dalam beberapa kasus, mungkin kita perlu mereset password database MySQL pada Laragon jika lupa password atau untuk alasan keamanan tertentu. Berikut adalah langkah-langkah yang dapat kita ikuti untuk melakukan reset password database MySQL menggunakan Laragon:

Apa Itu R dan L di Headset? Ini Dia Perbedaan dan Fungsinya yang Perlu Anda Ketahui

Arti R dan L di Headset: Apa Perbedaannya? Headset adalah alat yang digunakan untuk mendengarkan suara dari sumber audio seperti ponsel, komputer, atau pemutar musik. Headset biasanya terdiri dari dua bagian, yaitu earphone yang dimasukkan ke dalam telinga dan mikrofon yang digunakan untuk berbicara. Pada earphone, kita sering melihat ada tulisan R dan L. Apa arti dan perbedaan dari kedua huruf tersebut?