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


Persiapan

Untuk memulai mencoba bagaimana cara impor data excel ke database MySQL, Anda perlu menyiapkan beberapa hal ini
  1. Database, dengan nama mis. test_impor
  2. 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;
    
  3. Siapkan sebuah file excel dengan susunan misalnya seperti berikut

    data yang akan di impor
  4. Download php excel reader2 kemudian simpan pada folder projek kalian masing - masing
Impor Data Excel ke Database MySQL

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

Cara Impor Excel ke MySQL Menggunakan PHP

1 Response to "Cara Impor Excel ke MySQL Menggunakan PHP"

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin