Import Excel Ke MySQL Dengan PHP

Import Excel Ke MySQL Dengan PHP
Import Excel Ke MySQL Dengan PHP – Selamat datang kembali di seri tutorial php dasar bahasa indonesia terlengkap. kali ini di www.malasngoding.com kita akan belajar tentang PHP lagi, yaitu kita akan belajar tentang cara import data dari excel ke database MySQL dengan menggunakan PHP.
Setelah sebelumnya kita belajar cara export data dari database MySQL ke excel dengan PHP, maka sekarang kebalikannya, kita akan belajar tentang cara membuat import data excel ke MySQL dengan PHP.
Jadi kita akan membuat sebuah form upload, untuk tempat upload file excel yang ingin di import data nya ke database. kemudian pada saat proses upload berjalan, data-data yang ada pada file excel tersebut akan kita simpan ke database MySQL dengan menggunakan PHP.
Yuk langsung saja simak cara membuat import excel ke mysql dengan PHP berikut.
Import Excel Ke MySQL Dengan PHP
Sebagai contoh data yang akan kita import ke mysql dari file excel adalah data pegawai. jadi disini kita akan membuat import data pegawai dari excel ke mysql.
Untuk contoh project pada tutorial ini, saya membuat project baru pada localhost dengan nama “import_excel“. jadi silahkan buat folder dengan nama “import_excel” dalam folder htdocs.
Persiapan Database
Di tutorial ini, data excelnya akan kita import ke database “pegawai”. atau ke table data_pegawai.
Buat database baru dengan nama pegawai, dan buat table dengan nama data_pegawai seperti pada contoh gambar di bawah ini.

Import Excel Ke MySQL Dengan PHP
Atau silahkan teman-teman import sql berikut supaya cepat.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
CREATE TABLE `data_pegawai` ( `id` int(11) NOT NULL, `nama` varchar(50) NOT NULL, `alamat` text NOT NULL, `telepon` varchar(20) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Indexes for table `data_pegawai` -- ALTER TABLE `data_pegawai` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `data_pegawai` -- ALTER TABLE `data_pegawai` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11; COMMIT; |
Sampai di sini saya anggap teman-teman telah selesai membuat database “pegawai” dan table “data_pegawai” dengan column id, nama, alamat, telepon.
Koneksi Database
Karena disini kita akan berurusan dengan database, maka wajib hukumnya untuk membuat koneksi database terlebih dulu. agar database MySQL terhubung dengan project PHP kita.
Tutorial membuat koneksi database php dan mysqli bisa teman-teman baca di sini.
Buat file baru dengan nama koneksi.php dalam folder import_excel.
koneksi.php
1 2 3 |
<?php $koneksi = mysqli_query("localhost","root","","pegawai"); ?> |
Untuk cara membuat koneksi database dengan php dan mysqli sendiri sudah pernah dijelaskan secara detail dan rinci di www.malasngoding.com.
BACA : Tutorial Membuat Koneksi Database PHP dan MySQLi
Menampilkan Data
Setelah selesai membuat koneksi.php, selanjutnya tampilkan data dari database. jadi data yang ada di table data_pegawai kita tampilkan juga. kita akan menampilkan data pegawai pada file index.php. jadi buat sebuah file baru dengan nama index.php
index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
<!DOCTYPE html> <html> <head> <title>Import Excel Ke MySQL dengan PHP - www.malasngoding.com</title> </head> <body> <style type="text/css"> body{ font-family: sans-serif; } p{ color: green; } </style> <h2>IMPORT EXCEL KE MYSQL DENGAN PHP</h2> <h3>www.malasngoding.com</h3> <?php if(isset($_GET['berhasil'])){ echo "<p>".$_GET['berhasil']." Data berhasil di import.</p>"; } ?> <a href="upload.php">IMPORT DATA</a> <table border="1"> <tr> <th>No</th> <th>Nama</th> <th>ALamat</th> <th>Telepon</th> </tr> <?php include 'koneksi.php'; $no=1; $data = mysqli_query($koneksi,"select * from data_pegawai"); while($d = mysqli_fetch_array($data)){ ?> <tr> <th><?php echo $no++; ?></th> <th><?php echo $d['nama']; ?></th> <th><?php echo $d['alamat']; ?></th> <th><?php echo $d['telepon']; ?></th> </tr> <?php } ?> </table> <a href="https://www.malasngoding.com/import-excel-ke-mysql-dengan-php">www.malasngoding.com</a> </body> </html> |
Tutorial menampilkan data dari database juga sudah di jelaskan pada tutorial sebelumnya.
BACA : Menampilkan data dari database MySQL Dengan PHP
Perhatikan pada file index.php di atas, di sana kita membuat link yang mengarahkan halaman ke halaman untuk upload file excel yang ingin di import.
1 |
<a href="upload.php">IMPORT DATA</a> |
buat file php baru lagi dengan nama upload.php.
upload.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<!DOCTYPE html> <html> <head> <title>Import Excel Ke MySQL dengan PHP - www.malasngoding.com</title> </head> <body> <style type="text/css"> body{ font-family: sans-serif; } p{ color: green; } </style> <h2>IMPORT EXCEL KE MYSQL DENGAN PHP</h2> <h3>www.malasngoding.com</h3> <a href="index.php">Kembali</a> <br/><br/> <?php include 'koneksi.php'; ?> <form method="post" enctype="multipart/form-data" action="upload_aksi.php"> Pilih File: <input name="filepegawai" type="file" required="required"> <input name="upload" type="submit" value="Import"> </form> <br/><br/> <a href="https://www.malasngoding.com/import-excel-ke-mysql-dengan-php">www.malasngoding.com</a> </body> </html> |
cara membuat upload file dengan php juga sudah pernah dijelaskan sebelumnya di malasngoding.com. silahkan cek link berikut untuk membaca tutorial membuat upload dengan php.
BACA : Tutorial membuat upload file dengan PHP dan MySQL
Perhatikan pada form upload di atas,
1 |
<form method="post" enctype="multipart/form-data" action="upload_aksi.php"> |
file yang akan memproses aksi dari form upload ini adalah file upload_aksi.php. jadi sekarang kita buat file php baru dengan nama upload_aksi.php.
inti dari Import Excel Ke MySQL Dengan PHP ini ada pada file upload_aksi.php ini, di sini kita akan menginput data-data yang ada file excel yang di upload ke database.
Oh ya jangan lupa teman-teman harus download dulu library PHP Reader nya. silahkan download library PHP reader nya DI SINI.
Setelah di download, copy file excel_reader2.php ke project kita. lalu kemudian pada file upload_aksi.php, kita harus meng-include library excel_reader2.php. agar kita bisa menggunakan fungsi-fungsi untuk membaca isi file excel yang sudah ada pada library excel_reader2.php.
Perhatikan gambar berikut.

Import Excel Ke MySQL Dengan PHP
upload_aksi.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
<!-- import excel ke mysql --> <!-- www.malasngoding.com --> <?php // menghubungkan dengan koneksi include 'koneksi.php'; // menghubungkan dengan library excel reader include "excel_reader2.php"; ?> <?php // upload file xls $target = basename($_FILES['filepegawai']['name']) ; move_uploaded_file($_FILES['filepegawai']['tmp_name'], $target); // beri permisi agar file xls dapat di baca chmod($_FILES['filepegawai']['name'],0777); // mengambil isi file xls $data = new Spreadsheet_Excel_Reader($_FILES['filepegawai']['name'],false); // menghitung jumlah baris data yang ada $jumlah_baris = $data->rowcount($sheet_index=0); // jumlah default data yang berhasil di import $berhasil = 0; for ($i=2; $i<=$jumlah_baris; $i++){ // menangkap data dan memasukkan ke variabel sesuai dengan kolumnya masing-masing $nama = $data->val($i, 1); $alamat = $data->val($i, 2); $telepon = $data->val($i, 3); if($nama != "" && $alamat != "" && $telepon != ""){ // input data ke database (table data_pegawai) mysqli_query($koneksi,"INSERT into data_pegawai values('','$nama','$alamat','$telepon')"); $berhasil++; } } // hapus kembali file .xls yang di upload tadi unlink($_FILES['filepegawai']['name']); // alihkan halaman ke index.php header("location:index.php?berhasil=$berhasil"); ?> |
perhatikan pada file upload_aksi.php di atas, kita meng-include file koneksi.php agar bisa terhubung dengan database, kita juga meng-include file excel_reader2.php agar kita bisa menggunakan fungsi PHP yang sudah di buat dalam library excel_reader2.php untuk membaca isi file excel yang di upload.
1 2 3 4 5 6 |
<?php // menghubungkan dengan koneksi include 'koneksi.php'; // menghubungkan dengan library excel reader include "excel_reader2.php"; ?> |
Selanjutnya data yang di upload kita hitung jumlah data rows nya, agar bisa kita tetapkan pada perulangan. karena data akan kita input ke database menggunakan perulangan sesuai dengan berapa jumlah data yang ada pada file excel, sehingga segitu juga lah jumlah data yang akan di input ke database.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// mengambil isi file xls $data = new Spreadsheet_Excel_Reader($_FILES['filepegawai']['name'],false); // menghitung jumlah baris data yang ada $jumlah_baris = $data->rowcount($sheet_index=0); // jumlah default data yang berhasil di import $berhasil = 0; for ($i=2; $i<=$jumlah_baris; $i++){ // menangkap data dan memasukkan ke variabel sesuai dengan kolumnya masing-masing $nama = $data->val($i, 1); $alamat = $data->val($i, 2); $telepon = $data->val($i, 3); if($nama != "" && $alamat != "" && $telepon != ""){ // input data ke database (table data_pegawai) mysqli_query($koneksi,"INSERT into data_pegawai values('','$nama','$alamat','$telepon')"); $berhasil++; } } |
di sini ada 3 column data yang akan kita simpan ke database, yaitu data nama, alamat dan telepon.
1 2 3 4 5 6 7 8 9 |
$nama = $data->val($i, 1); $alamat = $data->val($i, 2); $telepon = $data->val($i, 3); if($nama != "" && $alamat != "" && $telepon != ""){ // input data ke database (table data_pegawai) mysqli_query($koneksi,"INSERT into data_pegawai values('','$nama','$alamat','$telepon')"); $berhasil++; } |
berikut ini adalah gambar contoh format file excel untuk import data excel ke database.

import excel ke database
Kolum 1 isi dengan nama, kolum 2 isi dengan alamat, dan kolum 3 isi dengan nomor telepon. dan format excel harus .xls.
Saya rasa penjelasannya sudah cukup jelas, selanjutnya akan kita coba import datanya.
akses localhost/import_excel pada browser.

import excel mysql
nah, di sini data pegawai kita masih kosong, klik pada tombol “import data”, maka akan di alihkan ke halaman upload file excel.

upload file exce ke database dengan php
Setelah pilih file excel yg ingin di upload (format data harus sesuai dan sama dengan contoh excel di atas tadi). dan klik import.

contoh hasil import excel ke mysql
Oke sekarang data excel telah berhasil di import ke database, dan data pegawai kini telah tampil.
Oke sekian dulu tutorial Import Excel Ke MySQL Dengan PHP. selamat belajar dan JANGAN LUPA LIKE FANPAGE FACEBOOK MALASNGODING.COM sebelum DOWNLOAD SOURCE CODE IMPORT EXCEL KE MySQL DENGAN PHP berikut.
Terima kasih teman-teman. semoga bermanfaat.
Tutorial Menarik Lainnya

Membuat Form Login Dengan PHP Tanpa Database


Menghitung Selisih Waktu Dengan PHP


Membuat CRUD menggunakan Ajax PHP – Hapus Data


Mas untuk promo book 5 = 250.000 itu sampai kapan tanggal akhirnya? Takut nanti kehabisan soalnya. Thanks
gak ada batas mas, wa ke 0896-0676-7404 aja nanti mas,
Mas saya ganti tabel database nya pesan nya berhasil impor sejumlah 247 tapi kosong mas di halaman indeksnya
mas ini bisa untuk excel 97-2003 atau untuk semua versi excel?
Trima kasih Mas Diki Alfarabi, artikelnya sangat membantu. semoga sukses slalu mas Diki
Permisi mas. Yang saya pas di klik import malah muncul ” parse error: syntax error, unexpected ‘new'(T_NEW) in C:\xampp\htdoc\malasngoding\excel_reader2.php on line 916.
Mohon bantuannya mas
ubah “$this->_ole =& new OLERead();” menjadi “$this->_ole = new OLERead();”
dan “$parts = spilt(“;”,$format);” menjadi “$parts = explode(“;”,$format);”
gmn cara kalau bikin xlsx
Mas terdapat berita ini. Maksudnya apa?
Parse error: syntax error, unexpected ‘new’ (T_NEW) in C:\xampp\htdocs\LATIHAN_6\excel\excel_reader2.php on line 916
halo. mau nanya mas. kalau nilai desimal kenapa gk bisa masuk ya? dianggap 0 nilai nya
format cell nya harus diubah dlu mas, di excelnya kalau mau buat desimal
File yang di upload kok tiba – tiba hilang dari foldernya, mohon solusinya mas
mas kenapa saat saya upload excel.xlsx tidak terbaca ya.
mas klaw menampilkan beberapa data dari 5 tabel terus di import ke excel bisa?
bisa, tinggal set aja dari controllernya untuk tampilin 5 data aja mas
@Muhamad adiyansyah , saya bantu jawab ya. Untuk error itu, di line 916 ole =& , ‘&’ nya di hapus.
buka file excel_reader.php cari character ‘&’ pada line 916 kemudian ganti / temukan fungsi ‘split’ dan ganti dengan ‘explode’
*happy code*
temukan dan hapus karakter “&” pada line 916 dan temukan dan replace fungsi split dengan fungsi explode
mas kalau anti injectionnya kepanggil 2 seperti Fatal error: Cannot redeclare anti_injection() (previously declared in C:\xampp\htdocs\duplikatdesa\config\koneksi.php:19) in C:\xampp\htdocs\duplikatdesa\config\koneksi.php on line 22 ini gimana ya?
Coba hapus character “&” pada line 916 mas
gan mau tanya, saya berhasil import data ke database, tapi kenapa ngga muncul di tabel nya ya? masih kaya kondisi semula
gan mau tanya, ane berhasil upload file excelnya, tapi kok ga masuk kedalem tabelnya ya? masih kosong kaya kondisi awal
cek lagi di perulangan atau di querynya mas, mungkin mas typo
Bang mau tanya maksutnya for($i = 2) itu apa ?
Terima kasih
variabel i = 2, untuk buat perulangan mas
saya udah pakai source codenya kok excell yang diinput tidak terbaca alias tidak masuk database?
Mas agar data hasil importnya nge replace data yg lama gmn ya.
excel readernya kok gabisa d download
bang kok 0 data berhasil diimport terus ya .. padahal udah download punya abang programnya
saya error undefined array di baris 390, ada yang tau solusinya?
trimaksih banyak bermanfaat
bang itu library phpnya gakbisa tuh didownload bang
Apakah ada tutorial update data dengan cara upload file excel ?
mas.. saya udah coba download source codenya, dan saya jalan kan hasil nya : 0 Data berhasil di import. table nya masih kosong, salahnya dimana ya ?
gak fungsi mas saya udah download, saya udah ubah koneksi tetep gak bisa,,,, kenapa ya mas…
saya juga udah unduh file mas ttp masih gak bisa
bagus
link nya mati mas untuk download nya
terima kasih saudara….atas tutorialnya…semoga ALLOH Membalas kebaikan budi bapak..AAmiiin