sumber : https://www.malasngoding.com/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_pegawaiseperti pada contoh gambar di bawah ini.
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.
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.
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.
nah, di sini data pegawai kita masih kosong, klik pada tombol “import data”, maka akan di alihkan ke halaman upload file excel.
Setelah pilih file excel yg ingin di upload (format data harus sesuai dan sama dengan contoh excel di atas tadi). dan klik import.
Oke sekarang data excel telah berhasil di import ke database, dan data pegawai kini telah tampil.
Komentar Terbaru