Free Download Excel2Mysql

Spreadsheet Excel secara luas digunakan untuk aplikasi keuangan, statistik dan aplikasi lain yang memerlukan penyajian data secara tabulasi. Level penggunaannya yang bervariasi memungkinkan software ini dapat digunakan oleh newbee dan profesional. Karenanya tidak heran banyak data disimpan dan dipertukarkan dalam bentuk Excel.

Maraknya aplikasi web dengan MySQL sebagai databasenya mendorong orang untuk membuat program konversi dari Excel ke MySQL. Ada beragam cara untuk mengonversi, seperti menggunakan COM, ODBC, dan XML. Masing-masing cara meminta persyaratan khusus, seperti adanya komponen COM Excel, software ODBC atau format Excel yang harus XML. Jadi akan tidak mudah bagi aplikasi untuk mengonversi file Excel tanpa adanya komponen-komponen tersebut.

Awalnya terpikir bahwa format Excel XML adalah yang layak, sebab XML parser cukup banyak ditemukan. Tetapi ketika sebuah file Excel berukuran 200kb di-save-as ke dalam format XML menjadi berukuran 1Mb, maka penggunaan format ini sepertinya kurang menggairahkan.

Dalam penelusuran di google, terkuak situs am I work dengan artikelnya Reading/Parsing Excel using PHP http://amiworks.co.in/talk/readingparsing-excel-spreadsheet-using-php, disana dijelaskan bagaimana membaca file excel dan memarsingnya menggunakan librari PHP-ExcelReader dari SourceForge.

Librari tersebut dapat digunakan untuk memindahkan data yang ada di excel ke database MySQL, tentu sahaja dengan serentetan usaha ribet. Bila pekerjaan tersebut dilakukan berulang-ulang, maka menjadi membosankan.

Dengan sedikit sentuhan programming, terbentuklah sebuah librari class Excel to MySQL Converter. Maka konversi excel ke mysql jadi seperti sulapan saja. Petakan column ke field lalu tinggal klik.

Class ini mengasumsikan file excel dengan baris pertama adalah nama kolom, dan mengasumsikan kita sudah menyiapkan tabel di dalam database MySQL ke arah mana data akan dipindahkan.

Sebagai contoh, kita akan memindahkan file excel berikut ke database.

Skema databasenya adalah:

database

Begini caranya:

  1. $excel_file = "samplex.xls";
  2. $excel2mysql = new Excel2MySQL( $excel_file );

Tentukan area excel yang akan dikonversi menggunakan setConvertArea, seperti perintah Excel PrintArea:

  1. $excel2mysql->setConvertArea( '$A$1:$F$10' );

Atau, area konversi dapat juga diset dengan menentukan column dan row pertamanya, seperti ini:

  1.  
  2. $excel2mysql->setColStart('A');
  3. $excel2mysql->setRowStart(1);

Khusus untuk file excel dengan content dimulai dari sel $A$1 seperti excel contoh di atas, kita tak perlu menggunakan setRowStart() maupun setColStart(), karena secara default akan mengacu ke sel tersebut.

Lalu, tentukan pemetaan antara kolom-kolom di excel ke kolom-kolom di MySQL. Kita bisa memilih kolom-kolom excel tertentu saja yang akan dikonversi ke database. Perhatikan bahwa saya tidak memasukkan kolom ADDRESS ke dalam proses konversi.

  1. $excel2mysql->setColMapping(array('NAME'=>'member_name',
  2.    'BIRTHDAY'=>'member_birthday',
  3.    'CITY'=>'member_city',
  4.    'EMAIL'=>'member_email'));

Lakukan koneksi, lalu injeksikan data.

  1. $excel2mysql->connectDB ('localhost','username',
  2.       'password','db_name','table_name');
  3.  
  4. $excel2mysql->injectData();
  5. /***/

Pekerjaan selesai. Ada pertanyaan? Silakan tak perlu sungkan.

Catatan perbaikan:
- 18 Juli 2008, dilakukan perbaikan pada class excel2mysql karena adanya bug pada pemetaan column.

Free Download Excel2Mysql berisi librari dan contoh.