Welcome to Our Website.. Setiap artikel yang ditampilkan pada halaman web, bebas dapat Anda gunakan.. dengan catatan: Cantumkan Link url: http://www.agussaputra.com/ ke dalam daftar sumber Anda.. Terima kasih..

Jumat, 06 Januari 2012

Import Excel to Database Menggunakan PHP dengan Filtering Data Besyarat

Ditulis Oleh : Agus Saputra | Dilihat sebanyak 749 kali
Tulisan ini mengawali tutorial di awal tahun 2012.. sebelumnya penulis ingin mengucapkan "Selamat Tahun Baru 2012" kepada pembaca dan pengunjung setia web ini..

Tema yang akan penulis tulis kali ini adalah mengenai Upload File (Import) data Excel ke dalam Database.. namun dengan sentuhan / catatan:
1. Jika terdapat duplikasi data dalam file excel (NIM), maka akan difilter, dan akan dimasukkan dalam tabel gagal dengan keterangan "Duplikasi NIM"
2. Jika terdapat NIM yang kosong, maka akan difilter juga dan dimasukkan ke dalam tabel gagal dengan keterangan "NIM Kosong"
3. Jika ke-2 syarat diatas lolos, maka akan disimpan ke dalam tabel sukses (mahasiswa)..

jadi intinya, memudahkan si pengguna untuk mengetahui "Mana data yang berhasil diupload dan Mana data yang gagal diupload", karena ke-2 hal tersebut telah dipisahkan
secara otomatis..

simpel kan.. namun cukup membuat pusing khususnya untuk para pemula..
kita langsung saja...

Siapkan database dan 2 tabel dengan spesifikasi seperti berikut:
tmahasiswa
nim | varchar(10)
nama | varchar(100)
alamat | varchar(100)
jurusan | varchar(50)
hp | varchar(20)

tgagal
nim | varchar(10)
nama | varchar(100)
keterangan | varchar(100)

download file excel Reader terlebih dahulu disini. file tersebut digunakan untuk mampu membaca data file excel

Buat file php dengan nama:
form_import.php
<h1>Import Data Excel</h1>
 
<form method="post" enctype="multipart/form-data" action="proses_import.php">
Pilih File Excel: <input name="userfile" type="file"><br />
<input name="upload" type="submit" value="Import">
</form>


dan
proses_import.php
<?php
// menggunakan class phpExcelReader
include "excel_reader2.php";
 
// koneksi ke MySQL
mysql_connect("localhost","root","");
mysql_select_db("dbagussaputra");
 
// 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);
 
// import data excel mulai baris ke-2
// (karena baris pertama adalah nama kolom)
for ($i=2; $i <= $baris; $i++){
    $nim = $data->val($i, 1);
    $nama = $data->val($i, 2);
    $alamat = $data->val($i, 3);
    $jurusan = $data->val($i, 4);
    $hp = $data->val($i, 5);
   
    $cari = mysql_num_rows(mysql_query("SELECT nim FROM tmahasiswa WHERE nim = '$nim'"));
   
    if (empty($nim)){
        $hasil = mysql_query("INSERT INTO tgagal(nim,nama,keterangan) VALUES('$nim','$nama','NIM Kosong')");
    }
    elseif ($cari > 0){
        $hasil = mysql_query("INSERT INTO tgagal(nim,nama,keterangan) VALUES('$nim','$nama','Duplikasi NIM')");
    }
    else{
        // setelah data dibaca, sisipkan ke dalam tabel tsukses
        $hasil = mysql_query("INSERT INTO tmahasiswa(nim,nama,alamat,jurusan,hp) VALUES('$nim','$nama','$alamat','$jurusan','$hp')");
    }
}

echo "Berhasil";
?>


langsung saja bisa Anda jalankan melalui http://localhost/namaFolder/form_import.php

Klik disini untuk mengunduh file excelnya dalam format yang ditentukan

Skrip yang dibuat diatas ditulis dengan menggunakan database MySQL, namun jika Anda menginginkan menggunakan database SQL Server, cukup ubah saja mysql nya menjadi mssql ..

semoga tutorial kali ini dapat memberikan manfaat kepada Anda

oh iya, jika Anda tak mau direpotkan oleh pembuatan skrip, source code lengkap siap pakai nya dapat Anda download disini
 
     Salam Hangat,
     Agus Saputra

[ Kembali ]

Ada 21 Komentar


Jefri | 06 Januari 2012 | 10:11:42
wow.. mantabs.. pertamax.. baru saja sy mau tanya soal filtering excel ini, malah uda diposting duluan, barusan lagi.. ga jadi nanya dah.. tq master agus :D
Agus Saputra | 06 Januari 2012 | 17:00:18
Jefri @ mantab dah kalo gitu.. =D
enasri | 16 Januari 2012 | 21:56:56
goods job tetap berkarya ....mas kalau dari ms.accses 2003 ke my sql codingnya gimana .... kirim ke email: fsaktinasri@gmail.com
mantab | 12 Maret 2012 | 20:11:15
mantab Mas, tapi mau tanya nih..
itu kan scra Default file excel yg diimport Sheet1 (sheet pertama) kalo misal yg akan saya import "sheets 2" bagaimana mas?
thanks.. perlu bgt nih.
Agus Saputra | 13 Maret 2012 | 09:42:58
mantab @ untuk lebih jelas, bisa klik di http://code.google.com/p/php-excel-reader/wiki/Docu mentation ...
radhitya | 26 Maret 2012 | 13:59:02
mas kalo import dengan excel yang telah didesign halamanya gmna cara ngambil datanya??
Agus Saputra | 26 Maret 2012 | 16:55:08
radhitya @ mudah kok.. bisa Anda tuliskan seperti skrip dibawah:
<?php
$namaFile = "namafile.xls";
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Co ntent-Type:application/octet-stream");
header("Cont ent-Type:application/download");
header("Content- Disposition: attachment; filename=$namaFile");
header("Content-Tr ansfer-Encoding: binary ");

// skrip selanjutnya (sama seperti menampilkan data pada konten web), desain bisa menggunakan kode html..
misalnya:

echo "<table>
<tr bgcolor=#ccc>
....


nanti pada buku selanjutnya ada pembahasan mengenai case tersebut..
yan | 31 Mei 2012 | 18:19:59
alhamdulillah sukses make programnya mas
makasi banyak
tinggal gmn cara sbaliknya
download ke excell


Agus Saputra | 01 Juni 2012 | 09:00:51
yan @ sippp.. :) nanti saya akan share mengenai download ke excel.. :)
ss joker | 06 September 2012 | 11:22:49
matur nuwun...pak,mas,om,pakdhe...
rohman | 23 Februari 2013 | 09:35:23
tanya mas...
untuk file yang di upload dengan script spt;

$data = new spreadsheet_excel_reader($_FILES['userfile 9;]['tmp_name']);


nah yang au mau tanyakan :
['usrfile'] itu di isi apa yaa/ ttep di biarkan gtu aja
dan juga ['tmp_name']... mohon bantuanya mas.... tolong balas di email aq. rohmanshared@yahoo.com
rohman | 23 Februari 2013 | 09:36:42
aku boleh minta alamat emailnya mas gak... atau no hp... bwt temen sharing aja
rohman | 23 Februari 2013 | 09:38:19
boleh minta no hp nya gk mas... atau emailnya... bwt sharing aja...
Agus Saputra | 23 Februari 2013 | 12:20:59
rohman @ email saya di:
takehikoboyz@gmail.com

$_FILES['userfi le']['tmp_name']
userfile itu sumbernya dari file formnya..
<input type=file

sedangkan tmp_name itu bawaan kode php, temporary name..
ardi | 26 Februari 2013 | 12:57:02
blognya bagus sekali mas agus, tetap dikembangkan dengan ilmu2x baru yah mas!
lia | 14 Maret 2013 | 11:55:42
mas agus . mau nanya dong, kalo pengen update data di excel kita upload lagi d database ikut ke update tpi ga boleh ng update nim pie mas?
Agus Saputra | 14 Maret 2013 | 23:39:04
lia @ ya nim nya jangan ditulis diskrip donk.. UPDATE nya jangan masukkan nim.. coba lihat skripnya..
lia | 18 Maret 2013 | 10:54:23
kak agus makasi update nya uda bsa deng. n mau nanya lagi nih, kalo aku punya 2 table:
1. table vendor : id_vendor, nama
2. table barang : id_barang, id_vendor, nama barang, qty

di excel nya datanya sbb:
id_barang , nama vendor, nama barang, qty
A001 , PT Cantika, Sunsilk, 1 doz

nah saat upload excel di table barang itu ke uploadnya

A001, 1, Sunsilk, 1 doz

pie yaa ?
iponk | 02 April 2013 | 22:48:28
maaf mas nanya, kalo integrasi database caranya gmana ya?
kan ada 2 Database di server yang beda, ketika database A berubah maka database B ikut berubah..
ivan | 27 Mei 2013 | 09:46:36
Notice: Undefined offset: 0 in C:\xampp\htdocs\xxx\excel_reader2.php on line 390
aditya sandy | 20 Agustus 2013 | 10:22:40
mas agus, saya aditya. .
kemarin saya abis download coding+file dari blognya mas agus tentang "Import Excel to Database Menggunakan PHP dengan Filtering Data Besyarat."

waktu saya coba, data di file excel-nya berhasil masuk ke database.
tpi di browser saya kok ada message seperti ini :

Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\import\excel_reader2.php on line 916
Berhasil

itu maksudnya apa mas agus ? ? mhon bantuannya ? ?

Komentar:

Nama :
Url :
ex: www.agussaputra.com (tanpa http://)
Komentar :

(Masukkan kode security diatas)