Import data dari excel ke database mysql dengan php dan phpspreadsheet

Selamat datang di warung belajar, melanjutkan pembahasan seri tutorial PHP, pada part 54 kita akan belajar mengenai cara import data dari file excel ke database mysql dengan php menggunakan library phpspreadsheet.

Cara ini bisa anda gunakan untuk mengimport data yang berada di file excel, agar dapat dimasukkan ke database mysql, disini kita masih menggunakan library phpspreadsheet karena memang library ini sangat powerfull baik untuk membuat dan membaca file excel.

Tutorial cara membuat file excel dengan menggunakan phpspreadsheet bisa anda cek di tutorial kita sebelumnya : Cara membuat report excel di php menggunakan phpspreadsheet

Kali ini kita akan memanfaatkan fitur lain yang disediakan oleh phpspreadsheet yaitu untuk membaca file excel

Baik ilustrasi proses import data dari excel ke database mysql adalah sebagai berikut :

  1. Kita buat database siswa yang berisi tabel dan kolom – kolom yang kita set untuk menyimpan data siswa
  2. kita buat file excel yang berisi data siswa, dimana datanya sesuai kolom di tabel database siswa
  3. kita akan buat form upload
  4. ketika file excel tersebut di upload, maka otomatis data yang ada di file excel akan disimpan di database siswa

baik kita langsung mulai prosesnya.

 

Mempersiapkan database siswa

Kita akan buat database siswa, contohnya kita buat dengan nama db_siswa, kita akan menggunakan phpmyadmin, karena dalam contoh ini kita menggunakan xampp, untuk tutorial install xampp bisa lihat tutorial kita sebelumnya : cara menginstall xampp

Baik kita asumsikan teman – teman sudah memiliki xampp, dan sudah bisa mengakses phpmyadmin.

buat database dengan nama db_siswa, lalu klik tombol buat

 

berikutnya kita buat tabel dengan nama tb_siswa, dengan kolom sebagai berikut :

Keterangan :

  • id_siswa = sebagai primary key, dan auto increment
  • nama = varchar 255
  • kelas = varchar 255
  • alamat = varchar 255

berikutnya silahkan klik tombol Simpan.

 

Atau teman – teman bisa menggunakan perintah SQL dibawah ini,untuk membuat database db_siswa, dan tabel tb_siswa.

baik kita asumsikan teman – teman sudah memiliki database siswa, seperti contoh diatas, kita lanjut ke step selanjutnya.

 

Buat Folder project

Berikutnya kita akan buat folder project, karena dalam contoh ini kita menggunakan xampp, sehingga project kita simpan di C:/xampp/htdocs

dalam contoh ini nama folder projectnya adalah importexcel

berikutnya didalamnya kita buat 3 file antara lain :

  1. form_upload.html
  2. koneksi.php
  3. proses.php

jadi kurang lebih tampilannya seperti ini :

baik kita asumsikan teman – teman sudah membuat folder project, dan juga sudah berisi file – file tersebut.

 

Menginstall library phpspreadsheet melalui composer.

Untuk menginstall phpspreadsheet kita akan menggunakan composer, jadi pastikan anda sudah menginstall composer, jika belum menginstall composer silahkan install terlebih dahulu, untuk tutorial instalasi composer bisa dilihat disini : Cara Menggunakan Composer untuk project PHP

Baik kita asumsikan teman – teman sudah menginstall composer, silahkan buka terminal / command prompt, lalu silahkan akses folder project dalam hal ini ada di C:/xampp/htdocs/importexcel

lalu tuliskan perintah berikut ini  :

Pastikan komputer yang anda gunakan terkoneksi dengan internet, lalu tekan tombol enter.

Silahkan tunggu hingga proses instalasi library phpspreadsheet selesai.

 

Membuat Koneksi Ke Database

Kita asumsikan teman – teman sudah menginstall library phpspreadsheet di folder project (importexcel), langkah berikutnya silahkan buka file koneksi.php yang ada di folder project, lalu isikan dengan code dibawah ini :

Keterangan :

  • Perintah diatas digunakan untuk koneksi ke database db_siswa yang sebelumnya telah kita buat.
  • $host dengan nilai “localhost” yang merupakan alamat server databasenya
  • $user dengan nilai “root” yang merupakan user dari databasenya
  • $password dengan nilai “” yang merupakan password untuk mengakses database, nilainya kosong karena default dari xampp untuk password user root adalah kosong
  • $database dengan nilai “db_siswa” yang merupakan nama dari database yang sebelumnya telah kita buat
  • Baris 6 adalah perintah untuk melakukan koneksi ke database, dan hasilnya disimpan di variabel $koneksi.

 

Membuat Form Upload

Silahkan buka file form_upload.html, lalu isikan dengan code seperti dibawah ini :

Untuk menampilkan form, anda bisa mengakses alamat : localhost/importexcel/form_upload.html

Keterangan :

Dalam form tersebut kita membuat sebuah input type file dengan nama berkas_excel

Pada attribute form kita menggunakan method=”post”, enctype=”multipart/form-data”, dan action=”proses.php”

Jadi bisa kita simpulkan ketika tombol import di klik, maka inputan form akan diproses di file proses.php dengan menggunakan method post.

 

Membuat pemrosesan form upload

Silahkan buka file proses.php di folder project, lalu isikan dengan code seperti dibawah ini :

Baik kita coba dulu gunakan perintah diatas, baru kita akan bahas apa fungsi code php di file proses.php.

 

Mencoba Proses Upload Excel

Untuk Testing proses upload file excel, langkah – langkahnya adalah sebagai berikut :

1. Silahkan akses alamat : localhost/importexcel/form_upload.html

 

2. Buatlah file excel, dengan format seperti berikut ini :

semisal kita simpan dengan nama data_siswa.xlsx

 

3. Berikutnya silahkan upload file excel tersebut didalam form upload, lalu klik tombol import.

4. Lalu perhatikan di database db_siswa, pada tabel tb_siswa, maka akan terdapat data siswa sesuai yang kita tulis di dalam tabel excel yang kita upload

 

 

Penjelasan File Proses.php

Setelah kita berhasil mengimport file excel ke database, berikutnya kita akan bahas perintah – perintah yang ada di file proses.php, penjelasannya adalah sebagai berikut :

Baris 2 kita include file koneksi.php agar bisa terkoneksi dengan database

 

Baris 3 kita require file autoload di folder vendor, agar dapat menggunakan library yang telah kita download sebelumnya

 

Baris 5 – 7 kita gunakan namespace untuk dapat mengakses class yang ada di library phpspreadsheet

 

Baris 9 kita menuliskan beberapa format file excel, yang nantinya akan digunakan sebagai validasi format file yang didukung, sebelum proses import data kedatabase dilakukan

 

Baris 11 code memeriksa apakah memang ada file yang kita pilih saat proses import dilakukan, serta format tipe file sesuai dengan yang telah kita tentukan pada array $file_mimes

 

Baris 13 – 14 kita lakukan explode pada nama file excel, untuk mengetahui extention file yang kita pilih.

 

Baris 16 kita lakukan pengecekan jika file extention adalah csv maka akan dibuat object dengan class reader csv (baris 17), tetapi jika tidak dibuatkan object dengan class reader xlsx (baris 19), setelah saya coba perintah ini hanya mendukung format Xlsx, dan csv

 

Baris 22 kita load file excel yang kita upload dan disimpan didalam variabel $spreadsheet

 

Baris 24 kita membuat variabel $sheetData yang digunakan untuk menyimpan array, hasil konversi isi dari file excel, menjadi bentuk array.

 

Baris 25 kita lakukan perulangan dengan menggunakan for, perhatikan pada variabel awal $i, kita menuliskan angka 1, hal tersebut dikarenakan data di file excel yang kita upload, isi datanya dimulai dari baris 2, lalu kenapa variabel $i memiliki nilai 0 bukan 2 ?

Hal tersebut dikarenakan index array hasil konversi file excel dimulai dari index ke 0, sehingga untuk baris 2 akan terhitung sebagai index 1

 

Baris 27 kita membuat variabel $nama untuk menyimpan data pada kolom nama, disitu kita tulis index ke 1, karena bagian nama berada di kolom ke 2, ingat index array dimulai dari angka 0 bukan 1

 

Baris 28 kita membuat variabel $kelas untuk menyimpan data pada kolom kelas, disitu kita tulis index ke 2, karena bagian nama berada di kolom ke 3

 

Baris 29 kita membuat variabel $alamat untuk menyimpan data pada kolom alamat, disitu kita tulis index ke 3, karena bagian nama berada di kolom ke 4

 

Baris 30 kita menuliskan query untuk insert data ke tabel tb_siswa dengan nilai variabel $nama,$kelas, dan $alamat.

 

Baris 32 setelah proses perulangan selesai, maka kita akan redirect kembali ke halaman form_upload.html

 

File Hasil Belajar

Untuk File Hasil belajar bisa didownload :

Source Code Import data dari excel ke Database MySQL

 

Baik kurang lebih seperti itu teman – teman pembahasan dari seri tutorial kali ini, kita sudah membahas bagaimana cara membuat fitur Import data Excel Ke Database MySQL dengan PHP menggunakan PhpSpreadSheet, jika ada yang ingin didiskusikan silahkan dikolom komentar.

 

 

 

Leave a Comment

Your email address will not be published.