te

Language   :  
Jumat, 20 Agustus 2010 - 10:52:53 WIB

Script PHP Import Data MS. Excel Ke MySQL


Diposting oleh : Wahyu Ari Kurniawan
Kategori: PHP - Dibaca: 1916 kali

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…


Related Link

Share |
» Tips Trik Cara Mempercepat Browser FireFox
10 Comment :

widodo
20 Agustus 2010 - 12:37:36 WIB

good article, keep posting.
wahyu ari kurniawan
20 Agustus 2010 - 19:52:31 WIB

thanks,,
Ryan Sofyan
20 Agustus 2010 - 21:05:30 WIB

Mantap gan!
nur cahyawati
12 Oktober 2010 - 19:11:00 WIB

hariiiiiiiiiiiiiiiiii
georfani
07 Maret 2011 - 11:35:53 WIB

Maaf bos mau tanya kalau seandainya didlm sheet itu ada yang tdk terisi datanya nah untuk mengecek kekosongan itu dan dapat memberikan informasi itu gmana penambahan codingya mohon penjelasannya.
arda
19 Mei 2011 - 08:42:25 WIB

kenapa gagal terus yah pas mau importnya ? udah bisa ittu cuma pas mau import excelnya pesannya itu malah data yang gagal : 9 nah data yang suksesnya kosong : 0 , kenapa kira2 ?
*nilai 9 ini hanya perumpamaan. .

tolong jawabannya , trimakasih. .
arda
19 Mei 2011 - 08:50:40 WIB

kenapa gagal terus yah pas mau importnya ? udah bisa ittu cuma pas mau import excelnya pesannya itu malah data yang gagal : 9 nah data yang suksesnya kosong : 0 , kenapa kira2 ?
*nilai 9 ini hanya perumpamaan. .

tolong jawabannya , trimakasih. .
andi novian
30 September 2011 - 07:19:07 WIB

terima kasih atas informasinya, sangat membantu, saya praktekan sekali jalan langsung bisa. Semoga diberi berkah atas informasi yang berguna ini. Sukses, mohon emailnya
hadie
12 November 2011 - 20:24:21 WIB

udah ane coba gan kalo datanya sedikit sih berhasil tp pas ane pakek data beberapa ribu gitu muncul error kyk gini
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 35 bytes) in D:\www\PDPJ\01\excel_reader2.php on line 1680

mohon penyelesaianya... kirim via email kalo bisa :)
Avil
04 Januari 2012 - 11:31:15 WIB

Bagaimana jika data sudah ada di host server di /public_html/?

Terima kasih

Isi Komentar :
Nama :
Email :
Website :
Komentar
  Karakter yang masih tersedia.
 
 (Masukkan 6 kode diatas)