Home > Tutorial > Convert Excel ke MySql

Convert Excel ke MySql

Saya punya data cukup besar. Data Excel 37MB yang jumlah recordnya 186.577. Kalau tidak dibuka dengan Excel 2007, maka timbul peringatan bahwa record melampaui batas maksimum yang diizinkan. Data itu akan di porting ke MySQL untuk diolah.

Kesana kemari cari Excel2Mysql ternyata nggak segampang yang saya bayangkan. Kalaulah ada tidak ada yang gratis. Akhirnya saya gunakan fasilitas yang ada dengan cara sbb :

Pertama, mengimpor dari Excel 2007 ke Acess 2007. Access 2007 cukup ampuh untuk digunakan sebagai konversi data karena ada menu import dan export.

Kalau kita mengklik “more” maka akan muncul format lain yaitu ODBC

Agar bisa diekspor ke ODBC – MySQL maka anda harus menginstall MySQL Connector/ODBC 5.1. Anda install dan anda mappingkan database Mysql anda ke ODBC.

Record pertama nanti akan dijadikan nama field. Saran saya, buatlah nama yang wajar untuk sebuah nama field pada record pertama Excel anda.

Untuk masalah import Excel ke Access tidak ada yang sulit, sudah ada wizart yang akan menuntun anda.

Kedua, Mengeksport dari Access 2007 ke Mysql

Eksport ke ODBC dan pilih Data Sources (Mysql) yang telah anda definisikan sebelumnya.

Hasilnya……

Menurut pengalaman import Excel ke Access memakan waktu cukup lama, namun dari Access ke ODBC Mysql berlangsung cukup cepat.

Ini adalah cara goblog-goblokan yang saya gunakan untuk mengkonversi data Excel ke database Mysql jika panjenengan mempunya cara yang lebih gampang, share dong.

source : achedy.penamedia.com

Ga sengaja nemu tutorial lagi untuk convert excel ke Mysql. Nih dia :

Sebenarnya topik tentang cara membuat script import data excel ke mysql sudah banyak ditanyakan rekans pengunjung setia blog ini. Namun… maaf baru sempat kali ini membuat artikelnya :-)

Mengapa script import data Excel ke MySQL ini perlu dibuat? ya.. karena tool-tool seperti phpMyAdmin belum mendukungnya. Kalau tidak salah phpMyAdmin hanya mendukung import data dalam bentuk format SQL maupun CSV. Sebenarnya ada sih tool yang mendukung import data dalam format Excel, seperti Navicat dan SQLyog. Namun keduanya adalah tool berbayar :-(

Nah… untuk membuat script import data Excel ke MySQL ini nanti kita akan memanfaatkan class PHPExcelReader yang dibuat oleh Vadim Tkachenko. Class ini sebenarnya hanya diperuntukkan untuk membaca file Excel saja, namun dengan sedikit modifikasi dan pengembangan dapat kita gunakan untuk melakukan import data Excel ke MySQL.

Oya… file Excel yang bisa dibaca oleh class PHPExcelReader ini untuk sementara hanya yang di bawah MS. Office 2007 atau Office 97-2003 saja. Dengan kata lain class ini tidak bisa digunakan untuk membaca file Excel yang berekstensi (*.xlsx). Oleh karena itu pastikan file Excel yang akan Anda import berekstensi *.xls.

Sebelum kita membuat script import datanya, silakan download terlebih dahulu class PHPExcelReader nya di bawah ini

Download Class

Selanjutnya, kita akan membuat script import datanya. Dalam script yang akan kita buat ini, class tersebut nantinya akan kita includekan di dalamnya.

Untuk contoh kasus yang akan kita pilih di sini adalah import data mahasiswa. Berikut ini struktur tabel MySQL nya.

CREATE TABLE `mhs` (
  `nim` varchar(10),
  `namamhs` varchar(30),
  `alamat` text,
  PRIMARY KEY  (`nim`)
)

Kemudian andaikan kita memiliki file data Excel seperti gambar di bawah ini

Script PHP Import Excel ke MySQL

Dalam proses import data nanti, kita akan menggunakan bentuk form upload file. Oleh karena itu, pertama kita buat form uploadnya sbb:

import.php

<h1>Import Data Asrama</h1>
 
<form method="post" enctype="multipart/form-data" action="proses.php">
Silakan Pilih File Excel: <input name="userfile" type="file">
<input name="upload" type="submit" value="Import">
</form>

Selanjutnya, kita buat script untuk proses upload dan import datanya. Oya… meskipun kita menggunakan form upload file, namun file Excel yang kita upload tersebut tidak akan tersimpan di server secara permanen namun hanya bersifat temporary yang otomatis akan terhapus setelah proses import datanya selesai.

proses.php

<?php
// menggunakan class phpExcelReader
include "excel_reader2.php";
 
// koneksi ke mysql
mysql_connect("dbHost", "dbUser", "dbPass");
mysql_select_db("dbname");
 
// membaca file excel yang diupload
$data = new Spreadsheet_Excel_Reader($_FILES['userfile']['tmp_name']);
 
// membaca jumlah baris dari data excel
$baris = $data->rowcount($sheet_index=0);
 
// nilai awal counter untuk jumlah data yang sukses dan yang gagal diimport
$sukses = 0;
$gagal = 0;
 
// import data excel mulai baris ke-2 (karena baris pertama adalah nama kolom)
for ($i=2; $i<=$baris; $i++)
{
  // membaca data nim (kolom ke-1)
  $nim = $data->val($i, 1); 
  // membaca data nama (kolom ke-2)
  $nama = $data->val($i, 2);
  // membaca data alamat (kolom ke-3)
  $alamat = $data->val($i, 3);
 
  // setelah data dibaca, sisipkan ke dalam tabel mhs
  $query = "INSERT INTO mhs VALUES ('$nim', '$nama', '$alamat')";
  $hasil = mysql_query($query);
 
  // jika proses insert data sukses, maka counter $sukses bertambah  
  // jika gagal, maka counter $gagal yang bertambah
  if ($hasil) $sukses++;
  else $gagal++;  
}
 
// tampilan status sukses dan gagal
echo "<h3>Proses import data selesai.</h3>";
echo "<p>Jumlah data yang sukses diimport : ".$sukses."<br>";
echo "Jumlah data yang gagal diimport : ".$gagal."</p>";
 
?>

Setelah script di atas dijalankan, maka berikut ini isi tabel mhs setelah proses import datanya

Script PHP Import Excel ke MySQL

Nah.. mudah bukan?? Oya.. pastikan class phpExcelReader tersebut terletak dalam folder yang sama dengan kedua script di atas.

Dalam membuat file Excel, Anda tetap bisa menggunakan Office 2007 asal ketika menyimpan filenya, pastikan formatnya adalah Excel 97-2003 worksheet (pilih Save As Type: Excel 97-2003 Worksheet).

Semoga artikel ini bermanfaat…

sumber : blog.rosihanari.net

Categories: Tutorial
  1. July 20, 2010 at 4:31 pm

    trims boz mantabbbb.. ijin copy paste

    • July 21, 2010 at 9:14 pm

      OK…sama-sama….indahnya berbagi…..

  2. August 10, 2010 at 9:37 am

    wah berhasil,, asik!! makasi ya.. 🙂

    • August 10, 2010 at 11:47 am

      Sama-sama…..Mari Berbagi Ilmu Di bulan Penuh Barokah ini 😀

  3. August 20, 2010 at 3:37 pm

    kok gagal ya …
    jumlah data yang sukses diimport:0
    jumlah data yang gagal diimport:84

    huehue gimana neh

    • August 27, 2010 at 9:15 pm

      apakah anda sudah mendefenisikan MySql nya..??

  4. yora
    August 25, 2010 at 12:16 pm

    koq sya g bisa ya?? udah dwnload MySQL Connector/ODBC 5.1. trs udh k bgian “Eksport ke ODBC dan pilih Data Sources (Mysql)”, nah abis itu ada isian “server, user, password, database”. klo saya klik “ok” tulisan ny ODBC-call failed. itu gmn ya? mhon pnjelasan nya..

    • August 27, 2010 at 9:07 pm

      anda harus install phpmyadmin dulu…untuk lebih mudah, anda harus install XAMPP dulu…. di software open source tersebut sudah bundel web server, database server(phpmyadmin)….. nah, isian default untuk server adalah : localhost, untuk user : root, untuk password: (kosongkan saja), untuk database : (buat baru di phpmyadmin database baru)…

  5. September 3, 2010 at 4:00 pm

    thank’s boz…

  6. May 19, 2011 at 9:15 am

    Bpk ardha mau tanya niih. .
    arda udah coba yah pak import excel ke mysql php yg kaya bpk suruh itu , tapi kok masih gagal yah pak buat importnya , tampilan dan segala macemnya uda bisa cuma pesan keluarnya gini pak :
    Proses import data selesai
    Jumlah data yang sukses diimport : 0
    Jumlah data yang gagal diimport : 299
    kenopo kak itu kira2 ?

  7. May 20, 2011 at 10:08 am

    @ardha : apakah MySQL Connector/ODBC sudah di install?? jangan lupa sesuaikan sheet yang akan di import….. jangan salah sheet

  8. May 30, 2011 at 11:48 pm

    Deprecated: Assigning the return value of new by reference is deprecated in D:\wamp\www\tugas_Sister\lib\excel_reader2.php on line 916

    ini error knp yaa?? saya cari2 solusinya ko gak nemu

  9. May 31, 2011 at 1:26 pm

    @mas agus : versi PHP nya pake yg berapa..??

    coba matiin error reporting di file php.ini

    display_errors = Off

    atau

    error_reporting = E_ALL & ~E_DEPRECATED

    abis itu servernya di restart

  10. nandha
    June 10, 2011 at 1:19 pm

    kalo ada tmp not readable kenapa ya?

  11. June 21, 2011 at 4:44 pm

    wah… bermanfaat banget nih tutorial nya…
    mas aku mau nanya…
    gimana klo kasusnya kita mau convert dari mdb ke mysql…
    mohon pencerahanya…

  12. krai
    June 21, 2011 at 4:51 pm

    kalau mau konversi database dari mdb menjadi avi atau mpeg gimana caranya ? soalnya saya baru belajar alias newbie. trimakasih buat admin serta master2 yang lain … mohon pencerahannya secerah-cerahnya.

  13. June 21, 2011 at 5:33 pm

    @nandha : saya juga kurang paham hal itu
    @ hendra ano saputra : bisa di convert dulu file *.mdb ke excelnya(dg fasilitas import) lalu dari excel tinggal di convert ke mysql dengan cara yg sama di tutorial ini
    @krai : setau saya mdb(file database) ga bisa diconvert ke avi. karena avi merupakan file multimedia (CMIIW)

  14. ano
    September 18, 2011 at 2:50 pm

    terima kasih banyak atas pencerahannya…
    aku dah berhasil …
    tp aku nemu kasus lagi nih…
    ketika mengekspor terdapat kolom dgn format ‘date’
    saya kesulitan dalam deklarasi variable nya contoh :

    // membaca file excel yang diupload
    $data = new Spreadsheet_Excel_Reader($_FILES[‘userfile’][‘tmp_name’]);

    //apakah benar hrs ditambah deklarasi variable spt ini
    $data_tgl = new Spreadsheet_Excel_Reader(–masih bingung??–);

    // membaca data nim (kolom ke-1) ini dah berhasil
    $nim = $data->val($i, 1);

    // membaca data tgl (kolom ke-2) ini masih belum bisa
    $nim = $data_tgl->val($i, 2);

    mohon pencerahan nya lagi….

    • September 18, 2011 at 9:45 pm

      @ano: klo pakai cara pindahkan file excel ke access lalu convert dg cara seperti cara saya diatas, apa sudah dicoba?

  15. ione
    December 28, 2011 at 10:02 am

    ijin ctrl D boz.. mantap..

  16. January 31, 2012 at 9:23 am

    maksudnya mysql connector / odbc itu apa mas? saya tidak bisa, keluarnya yang sukses 0, yg gagal juga 0 =.=

    • February 16, 2012 at 10:44 am

      odbc connector itu fungsinya supaya file excel atau access kita bisa terhubung ke localhost kita….agar bisa di convert jadi file ber extension *.SQL

  17. May 13, 2014 at 8:22 am

    maaff gan mohon bantuannya saya mau mengimport data dari excel dengan jumlah data 32mb , tetapi kenapa tidak bisa ya ?
    kalo data sedikit masuk , kalo data 32mb tidak masuk .
    mohon bantuannya sekali .

  1. No trackbacks yet.

Leave a reply to arda Cancel reply