Cara Konversi Excel ke MySQL di PHP
Ada sebuah pertanyaan di salah satu grup Facebook Indonesia yang membahas tentang pemrograman PHP. Dia --meminta-- kode PHP untuk melakukan konversi Excel ke MySQL. enak ya, tinggal minta. hahahaha...,
Disana banyak yg memberikan komentar masukan (bukan kode), dengan ini, dengan itu dan sebagainya.
Saya, akhirnya juga memberikan komentar (kode). Dengan maksud, agar si --penanya-- juga belajar.
Karena sudah terlanjur, saya mencoba membagikan cara untuk melakukan konversinya disini. Barang kali, kalian ada yg memiliki kendala yg sama, dan masih dalam proses belajar.
Konversi Excel ke CSV
Karena di php tidak ada native untuk membaca file excel. adanya file csv. Karena saya sendiri tidak ingin menggunakan lib\fw lain. Saya yakin, ms.excel ada fasilitas untuk melakukan konversinya ke csv.
Contoh Tabel MySQL
Contoh data file CSV
Stream File CSV
Loop baris-perbaris dari file CSV
Sebelum melakukannya, kita perlu mengetahui pemisah (delimiter) data per baris (record). Untuk mengetahuinya, kita bisa membuka file csv dengan text-editor.
Normalnya, menggunakan "," (koma). Tapi Excel keluaran terbaru (setau saya) mengunakan ";" (titik koma). Dalam kasus ini, pemisahnya adalah koma.
Kode diatas, akan melakukan perulangan baris-perbaris dari
To be continue...., (201605132133)
Penyaringan
Tentunya, yang akan disimpan ke database bukan baris judul, dan baris yang kosong. Yaitu, baris ke-0 yang berisi "
Maka dari itu, kita perlu mengetahui posisi angka-baris dalam perulangan. Maka dari itu, kita perlu menentukan sebuah variable yang akan menyimpan angka-perbaris. Sebelum
Setelah itu, proses-penyaringan:
Query insert ke MySQL
Saya anggap kalian sudah membuat koneksi ke database mysql sebelumnya, jadi setelah penyaringan, tinggal melakukan perintah insert ke mysql (silahkan sesuaikan sendiri)
Selamat mencoba.
Disana banyak yg memberikan komentar masukan (bukan kode), dengan ini, dengan itu dan sebagainya.
Saya, akhirnya juga memberikan komentar (kode). Dengan maksud, agar si --penanya-- juga belajar.
Karena sudah terlanjur, saya mencoba membagikan cara untuk melakukan konversinya disini. Barang kali, kalian ada yg memiliki kendala yg sama, dan masih dalam proses belajar.
Konversi Excel ke CSV
Karena di php tidak ada native untuk membaca file excel. adanya file csv. Karena saya sendiri tidak ingin menggunakan lib\fw lain. Saya yakin, ms.excel ada fasilitas untuk melakukan konversinya ke csv.
Contoh Tabel MySQL
CREATE TABLE ulangan ( `id` int, `ulangan_ke` int, `nama` varchar(10), `nilai` int, `peringkat` int ) ;
Contoh data file CSV
Nama,Nilai,Peringkat ,, Agus,73,7 Budi,87,4 Dina,65,11 Edi,95,2
Stream File CSV
$handle = fopen('folder/ke/file.csv','r');
Loop baris-perbaris dari file CSV
Sebelum melakukannya, kita perlu mengetahui pemisah (delimiter) data per baris (record). Untuk mengetahuinya, kita bisa membuka file csv dengan text-editor.
Normalnya, menggunakan "," (koma). Tapi Excel keluaran terbaru (setau saya) mengunakan ";" (titik koma). Dalam kasus ini, pemisahnya adalah koma.
$delimiter = ","; while ($a = fgetcsv($handle,0,$delimiter)) { //prulangan }
Kode diatas, akan melakukan perulangan baris-perbaris dari
file.csv
, dimana baris dimulai dari 0 (nol), saya rasa kalian sudah tahu akan hal itu.
Penyaringan
Tentunya, yang akan disimpan ke database bukan baris judul, dan baris yang kosong. Yaitu, baris ke-0 yang berisi "
Nama,Nilai,Peringkat
" dan baris dengan data kosong. Dalam kasus ini baris ke-1, yang berisi ",,
".Maka dari itu, kita perlu mengetahui posisi angka-baris dalam perulangan. Maka dari itu, kita perlu menentukan sebuah variable yang akan menyimpan angka-perbaris. Sebelum
while
kita tambahkan variable:
$n = -1;Kemudian, didalam
while
tulis:
$n++;Singkatnya, saya memulai n dari
-1
, untuk melakukan penyaringan.Setelah itu, proses-penyaringan:
if($n === 0) { continue; //lewati } if(empty($a[0]) && empty($a[1]) && empty($a[3])) { //sederhananya continue; //lewati }
Query insert ke MySQL
Saya anggap kalian sudah membuat koneksi ke database mysql sebelumnya, jadi setelah penyaringan, tinggal melakukan perintah insert ke mysql (silahkan sesuaikan sendiri)
$sql->query("INSERT INTO ulangan(ulangan_ke,nama,nilai,peringkat) VALUES('100','{$a[0]}','{$a[1]}','{$a[2]}')");
Selamat mencoba.
Komentar
Posting Komentar
Komentar ...