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.
1.
CREATE
TABLE
`mhs` (
2.
`nim`
varchar
(10),
3.
`namamhs`
varchar
(30),
4.
`alamat` text,
5.
PRIMARY
KEY
(`nim`)
6.
)
Dalam proses import data nanti, kita akan menggunakan bentuk form upload file. Oleh karena itu, pertama kita buat form uploadnya sbb:
import.php
1.
<
h1
>Import Data Asramah1
>
2.
3.
<
form
method
=
"post"
enctype
=
"multipart/form-data"
action
=
"proses.php"
>
4.
Silakan Pilih File Excel: <
input
name
=
"userfile"
type
=
"file"
>
5.
<
input
name
=
"upload"
type
=
"submit"
value
=
"Import"
>
6.
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
01.
02.
// menggunakan class phpExcelReader
03.
include
"excel_reader2.php"
;
04.
05.
// koneksi ke mysql
06.
mysql_connect(
"dbHost"
,
"dbUser"
,
"dbPass"
);
07.
mysql_select_db(
"dbname"
);
08.
09.
// membaca file excel yang diupload
10.
$data
=
new
Spreadsheet_Excel_Reader(
$_FILES
[
'userfile'
][
'tmp_name'
]);
11.
12.
// membaca jumlah baris dari data excel
13.
$baris
=
$data
->rowcount(
$sheet_index
=0);
14.
15.
// nilai awal counter untuk jumlah data yang sukses dan yang gagal diimport
16.
$sukses
= 0;
17.
$gagal
= 0;
18.
19.
// import data excel mulai baris ke-2 (karena baris pertama adalah nama kolom)
20.
for
(
$i
=2;
$i
<=
$baris
;
$i
++)
21.
{
22.
// membaca data nim (kolom ke-1)
23.
$nim
=
$data
->val(
$i
, 1);
24.
// membaca data nama (kolom ke-2)
25.
$nama
=
$data
->val(
$i
, 2);
26.
// membaca data alamat (kolom ke-3)
27.
$alamat
=
$data
->val(
$i
, 3);
28.
29.
// setelah data dibaca, sisipkan ke dalam tabel mhs
30.
$query
=
"INSERT INTO mhs VALUES ('$nim', '$nama', '$alamat')"
;
31.
$hasil
= mysql_query(
$query
);
32.
33.
// jika proses insert data sukses, maka counter $sukses bertambah
34.
// jika gagal, maka counter $gagal yang bertambah
35.
if
(
$hasil
)
$sukses
++;
36.
else
$gagal
++;
37.
}
38.
39.
// tampilan status sukses dan gagal
40.
echo
"
Proses import data selesai.
Proses import data selesai.
"
;
41.
echo
"
Jumlah data yang sukses diimport : "
.
$sukses
.
"
"
;
42.
echo
"Jumlah data yang gagal diimport : "
.
$gagal
.
"
"
;
43.
44.
?>
Setelah script di atas dijalankan, maka berikut ini isi tabel mhs setelah proses import datanya
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…
EmoticonEmoticon