Postingan ini sebenarnya seperti biasa, catatan pribadi namun sengaja saya share siapa tahu berguna bagi pembaca, karena saya sendiri juga sering lupa 😁. Yaitu import data dari file Excel ke tabel MySQL yang kebetulan ada salah satu fitur yang ada dalam project kecil saya, yaitu API Data Jamaah(project non-komersial lho ini, atau lebih tepatnya project sinahu. xixixi 😁).

Adapun library yang saya gunakan adalah Apache POI.

Apa itu Apache POI

Apache POI adalah sebuah library Java untuk mengelola(membuat, membaca dan mengedit) dokumen Microsoft Office seperti Word (.docx), Excel, (.xlsx) dan PowerPoint (.pptx). Ingin tahu lebih banyak, bisa anda baca sendiri disini.

Dalam kasus ini, fungsi yang akan kita gunakan adalah membaca file Excel, kemudian nanti hasilnya berupa List<JamaahEntity> kita insert all ke dalam tabel MySQL.

Setup Apache POI

Karena saya menggunakan gradle, sehingga untuk menginstall Apache POI tinggal menambahkan dependensi berikut ini. Oh ya, saat postingan ini ditulis, versi Apache POI erbaru adalah versi 5.0.0.

Kemudian Sync gradle.

Siapkan Entity/Tabel-nya

Entity untuk menyimpan datanya adalah JamaahEntity, dengan table name =”jamaah” yang saya simpan dalam package models.entities.

Membuat Helper.

Sebelum membuat helper, mari kita perhatikan file Excelnya. Cell yang akan kita ambil hanya kolom A, B, C dan E, sedangkan kolom D tidak. Sehingga boleh dibilang column index ke 0, 1, 2 dan 4.

Kemudian saya membuat kelas JamaahExcelHelper.java yang didalamnya akan kita buat static method  yaitu excelToJamaahEntitys() untuk membaca sekaligus menggenerate List<JamaahEntity> sehingga nanti pada kelas JamaahSerice tinggal dipanggil.

Kelas helper ini saya simpan jadi satu package dengan JamaahService.java dan JamaahServiceImpl.java, yaitu di package models.services.

Implementasi di Controller

Kemudian dari controller, tempat dimana terdapat ResquestMapping atau method yang akan dipanggil oleh Front-End Dev. Nah, kita bisa memanggil method importExcel yang ada di kelas JamaahService.

Siap di Tes

Siap di test. Silahkan pake Rest Client yang anda suka misal PostMan atau Insomnia. Saya pake Insomnia. Hehe..

Mau lihat full Source Code boleh unduh disini. Selamat mencoba, terimakasih.