Read/Write Excel di Laravel dengan box/spout

Berawal dari workshop yang di adakan di kantor, kebetulan temanya itu adalah import, read, export file Excel dengan jumlah baris data yang mencapai 8000, biasanya sih kalo datanya sampai sebanyak itu suka muncul memory limit error gitu. Untuk itu kita perlu sebuah library PHP yang mampu mengatasi permasalahan tersebut.

Apa sih box/spout itu, kenapa pilih box/spout? box/spout merupakan sebuah library PHP untuk membaca dan menulis file spreadsheet (CSV, XLSX dan ODS), dengan waktu yang relatif singkat. Berbeda dengan library PHP lain, box/spout memproses file yang sangat besar dengan menjaga penggunaan memori yang rendah (kurang dari 3MB).

Yup, langsung saja kita coba.
Langkah pertama kita siapkan dulu project Laravel-nya, kemudian kita install deh box/spout nya.

Instalasi box/spout menggunakan composer

setelah itu kita buat database-nya, di sini kita gunakan MySQL sebagai database-nya, terus sekalian dibuat migration-nya, biar tidak banyak memakan waktu kita pakai semua tipe data String semua aja ya, hehe…

Source code Migration Customers table

berikutnya sesuaikan dulu file .env nya, habis itu baru deh di migrate.

Sipp, persiapan database udah selesai. Selanjutnya buat route, view, model, dan controller untuk melakukan upload dan export file Excel-nya.

Source code route Laravel
Source code View
Source Code Model Customer
Source code Controller

lanjut ke tes uplaod file Excel-nya,dan export lagi datanya.

Hasil :

File Excel
Tersimpan di database
Jumlah data tersimpan
Export dari database ke Excel

Kesimpulan : berdasarkan percobaan yang telah dilakukan, dengan melakukan upload data Excel sebanyak 8399 baris, box/spout mampu melakukan tugasnya dengan baik tanpa ada memory limit error.

Selamat mencoba.

Show your support

Clapping shows how much you appreciated Rida Sukmara’s story.