Cara Impor Excel ke MySQL Menggunakan PHP
Pada phpMyAdmin sebenarnya terdapat antar muka yang memungkinkan kita untuk mengunggah atau mengupload data jenis file excel. Melalui menu impor yang terdapat pada phpMyAdmin, kita bisa dengan mudah memindahkan sebuah data excel (biasanya dibolehkan dalam format CSV) ke database MySQL.
Namun dalam kondisi tertentu memindahkannya (impor) melalui aplikasi lain seperti phpMyAdmin tentu akan cukup merepotkan, untuk itu kita bisa mempermudah ini dengan cara menyediakan antar mukanya sendiri pada aplikasi yang kita bangun.
Baca juga : Cara Ekspor Data MySQL ke Excel Menggunakan PHP
Baca juga : Cara Ekspor Data MySQL ke Excel Menggunakan PHP
Persiapan
Untuk memulai mencoba bagaimana cara impor data excel ke database MySQL, Anda perlu menyiapkan beberapa hal ini
- Database, dengan nama mis. test_impor
- Selanjutnya buatlah sebuah tabel dengan nama misal tbl_info (id, name, description, date) atau Anda bisa jalankan query berikut pada phpMyAdmin
CREATE TABLE `tbl_info` ( `id` int(11) NOT NULL, `name` varchar(50) NOT NULL, `description` varchar(50) NOT NULL, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Indexes for dumped tables -- -- -- Indexes for table `tbl_info` -- ALTER TABLE `tbl_info` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `tbl_info` -- ALTER TABLE `tbl_info` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; COMMIT;
- Siapkan sebuah file excel dengan susunan misalnya seperti berikut
- Download php excel reader2 kemudian simpan pada folder projek kalian masing - masing
Jadi operasi pengimporan data excel ke Database MySQL kita kali ini sangat bergantung sekali pada plugins php excel reader2. Nanti file – file yang ada di php excel reader perlu dipanggil. Anda hanya perlu menyiapkan sebuah form upload, dan bagian script untuk memprosesnya. Contohnya seperti berikut ini.
<?php
$conn = mysqli_connect("localhost","root","","test_import");
//pangil file - file di php excel reader
require_once('vendor/php-excel-reader/excel_reader2.php');
require_once('vendor/SpreadsheetReader.php');
if (isset($_POST["import"]))
{
$allowedFileType = ['application/vnd.ms-excel','text/xls','text/xlsx','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];
if(in_array($_FILES["file"]["type"],$allowedFileType)){
//nanti buat juga folder uploads pada projek kalian masing - masing
$targetPath = 'uploads/'.$_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'], $targetPath);
$Reader = new SpreadsheetReader($targetPath);
$sheetCount = count($Reader->sheets());
for($i=0;$i<$sheetCount;$i++)
{
$Reader->ChangeSheet($i);
foreach ($Reader as $Kolom)
{
//definisikan satu persatu kolom yang akan di impor,
$name = "";
if(isset($Kolom[0])) {
$name = mysqli_real_escape_string($conn,$Kolom[0]);
}
$description = "";
if(isset($Kolom[1])) {
$description = mysqli_real_escape_string($conn,$Kolom[1]);
}
if (!empty($name) || !empty($description)) {
$query = "insert into tbl_info(name,description) values('".$name."','".$description."')";
$result = mysqli_query($conn, $query);
if (! empty($result)) {
$type = "success";
$pesan= "Excel Berhasil di Impor ke database";
} else {
$type = "error";
$pesan= "Terjadi kesalahan. Data gagal di impor";
}
}
}
}
}
else
{
$type = "error";
$pesan= "Tipe file salah. Upload hanya file excel.";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<style>
body {
font-family: Arial;
width: 550px;
}
.outer-container {
background: #F0F0F0;
border: #e0dfdf 1px solid;
padding: 40px 20px;
border-radius: 2px;
}
.btn-submit {
background: #333;
border: #1d1d1d 1px solid;
border-radius: 2px;
color: #f0f0f0;
cursor: pointer;
padding: 5px 20px;
font-size:0.9em;
}
.tutorial-table {
margin-top: 40px;
font-size: 0.8em;
border-collapse: collapse;
width: 100%;
}
.tutorial-table th {
background: #f0f0f0;
border-bottom: 1px solid #dddddd;
padding: 8px;
text-align: left;
}
.tutorial-table td {
background: #FFF;
border-bottom: 1px solid #dddddd;
padding: 8px;
text-align: left;
}
#response {
padding: 10px;
margin-top: 10px;
border-radius: 2px;
display:none;
}
.success {
background: #c7efd9;
border: #bbe2cd 1px solid;
}
.error {
background: #fbcfcf;
border: #f3c6c7 1px solid;
}
div#response.display-block {
display: block;
}
</style>
</head>
<body>
<h2>Import File Excel ke MySQL Menggunakan PHP</h2>
<div class="outer-container">
<form action="" method="post"
name="frmExcelImport" id="frmExcelImport" enctype="multipart/form-data">
<div>
<label>Pilih Pile Excel
File</label> <input type="file" name="file"
id="file" accept=".xls,.xlsx">
<button type="submit" id="submit" name="import"
class="btn-submit">Import</button>
</div>
</form>
</div>
<div id="response" class="<?php if(!empty($type)) { echo $type . " display-block"; } ?>"><?php if(!empty($pesan)) { echo $pesan; } ?></div>
<?php
$sqlSelect = "SELECT * FROM tbl_info";
$result = mysqli_query($conn, $sqlSelect);
if (mysqli_num_rows($result) > 0)
{
?>
<table class='tutorial-table'>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<?php
while ($Kolom = mysqli_fetch_array($result)) {
?>
<tbody>
<tr>
<td><?php echo $Kolom['name']; ?></td>
<td><?php echo $Kolom['description']; ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
}
?>
</body>
</html>
Selanjutnya Anda tinggal mencoba mengimpor sebuah file excel ke database mysql. Jika data berhasil di impor maka kurang lebih nantinya akan terlihat seperti berikut ini
wah bisa diekspor ya kalau tahu bahasa program
ReplyDelete