Import data excel ke MySQL dengan phpspreadsheet di PHP


Import data excel ke MySQL dengan phpspreadsheet di PHP

Pada tutorial sebelumnya saya sudah bahas mengenai export data dari MySQL ke excel di PHP dengan library phpspreadsheet, kali ini kita akan bahas import data excel ke MySQL di PHP dengan phpspreadsheet, kita ketahui dalam sebuah aplikasi perlu yang namanya import data, tujuannya adalah mempermudah user dalam menginput data secara massal dan cepat.

Atas dasar efisiensi dan kecepatan dalam input data tersebutlah fitur import data sangat diperlukan, terlebih jika import datanya dari file excel tentu akan lebih memudahkan user lagi. Pada kesempatan kali ini saya akan memberikan tutorial singkat untuk membuat fitur import data excel ke MySQL dengan library phpspreadsheet di PHP., yuk di simak tutorial berikut ini.

Pertama buatlah sebuah folder dengan nama import_excel di direktory C:/xampp/htdocs/ lanjut kemudian anda bisa mendownload library PHPSpreadSheet di link berikut ini https://github.com/PHPOffice/PhpSpreadsheet, jika sudah maka langkah selanjutnya adalah ektrak dan simpan hasil extract phpspreadsheet ke direktory c:/xampp/htdocs/import_excel jika sudah maka dilanjutkan dengan membuat database.

Membuat Database

Pada tutorial sebelumnya yaitu export data ke excel kita sudah membuat database dengan nama mahasiswa, didalam database tersebut terdapat tabel mahasiswa, nah karena kita akan uji coba import data adabaiknya record yang ada di dalam tabel mahasiswa dihapus terlebih dahulu, atau bisa dumping sql syntax berikut ini

-- phpMyAdmin SQL Dump
-- version 4.8.0
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Waktu pembuatan: 25 Sep 2019 pada 08.27
-- Versi server: 10.1.31-MariaDB
-- Versi PHP: 7.1.16

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `mahasiswa`
--

-- --------------------------------------------------------

--
-- Struktur dari tabel `mahasiswa`
--

CREATE TABLE `mahasiswa` (
  `id` int(10) NOT NULL,
  `nim` varchar(5) NOT NULL,
  `nama` varchar(40) NOT NULL,
  `ipk` double NOT NULL,
  `jurusan` varchar(40) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Indexes for dumped tables
--

--
-- Indeks untuk tabel `mahasiswa`
--
ALTER TABLE `mahasiswa`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT untuk tabel yang dibuang
--

--
-- AUTO_INCREMENT untuk tabel `mahasiswa`
--
ALTER TABLE `mahasiswa`
  MODIFY `id` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=59;
COMMIT;

/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;

Membuat file koneksi.php

Langkah selanjutnya adalah membuat file koneksi.php, silahkan ada ketik kode berikut ini kemudian simpan dengan nama koneksi.php simpan ke di rektory yang sudah dibuat pada awal tutorial ini yaitu di c:/xampp/htdocs/import_excel
<?php 
$host       = "localhost";
$user       = "root";
$password   = "";
$database   = "mahasiswa";
$koneksi    = mysqli_connect($host, $user, $password, $database);
?>


Membuat file index.php

Langkah selanjutnya adalah membuat sebuah file index untuk menampilkan data yang berhasil di import, silahkan anda ketik kode di bawah ini kemudian simpan dengan nama index.php ke direktory c:/xampp/htdocs/import_excel

  <!--
 File : import data ke excel dengan phpspreadsheet
 Author : Hakko Bio Richard
 Blog : www.hakkoblogs.com
     -->
 <html>
 <head>
 <title>Import Data Excel dengan phpspreadsheet| www.hakkoblogs.com</title>
 </head>
 <?php
                    include "koneksi.php";
                    $query1="select * from mahasiswa";
                    $tampil=mysqli_query($koneksi, $query1) or die(mysqli_error());
                    ?>
                    <a href="import.php" style="background:yellow; color:green; border:1px;">IMPORT DATA DARI EXCEL</a>
                  <table border="1">
                  <thead>
                      <tr>
                        <th><center>No </center></th>
                        <th><center>NIM</center></th>
                        <th><center>Nama </center></th>
                        <th><center>IPK </center></th>
                        <th><center>Jurusan </center></th>
                      </tr>
                  </thead>
                     <?php 
                     $no=0;
                     while($data=mysqli_fetch_array($tampil))
                    { $no++; ?>
                    <tbody>
                    <tr>
                    <td><center><?php echo $no; ?></center></td>
                    <td><center><?php echo $data['nim'];?></center></td>
                    <td><center><?php echo $data['nama'];?></center></td>
                    <td><center><?php echo $data['ipk'];?></center></td>
                    <td><center><?php echo $data['jurusan'];?></center></td>
                    </tr>
                    <?php
              } 
              ?>
                   </tbody>
                   </div>
                   </div>
</body>
                   </table>
                   </html>

Membuat form import.php

Selanjutnya adalah membuat form import data excel, silahkan anda ketik kode di bawah ini atau anda copy dan pastekan kode di bawah ini kemudian simpan dengan nama import.php ke direktory c:/xampp/htdocs/import_excel

  <!--
 File : import data ke excel dengan phpspreadsheet
 Author : Hakko Bio Richard
 Blog : www.hakkoblogs.com
     -->
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<fieldset>
<legend>Form Upload Excel | www.hakkoblogs.com</legend>
<?php

include('koneksi.php');
require 'vendor/autoload.php';
 
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Reader\Csv;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
 ?>
 <?php
 if(isset($_POST['import'])){
$file_mimes = array('application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

if(isset($_FILES['berkas_excel']['name']) && in_array($_FILES['berkas_excel']['type'], $file_mimes)) {
 
    $arr_file = explode('.', $_FILES['berkas_excel']['name']);
    $extension = end($arr_file);
 
    if('csv' == $extension) {
        $reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
    } else {
        $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
    }
 
    $spreadsheet = $reader->load($_FILES['berkas_excel']['tmp_name']);
     
    $sheetData = $spreadsheet->getActiveSheet()->toArray();
    for($i = 1;$i < count($sheetData);$i++)
    {
        $nim     = $sheetData[$i]['1'];
        $nama    = $sheetData[$i]['2'];
        $ipk     = $sheetData[$i]['3'];
        $jurusan = $sheetData[$i]['4'];
        mysqli_query($koneksi,"insert into mahasiswa (id,nim,nama,ipk,jurusan) values ('','$nim','$nama','$ipk','$jurusan')");
    }
    //header("Location: form_upload.html"); 
    echo "<b style='color :red;'>Data berhasil di upload!</b>";
}
 
}
?>
<a href="Data Mahasiswa.xlsx" style="background:yellow; color:green; border:1px;">DOWNLOAD FORMAT EXCEL</a>
<br/><br/>
<form method="post" enctype="multipart/form-data" action="">
    <div class="form-group">
        <label for="exampleInputFile">File Upload</label>
        <input type="file" name="berkas_excel" class="form-control" id="exampleInputFile">
    </div>
    <input type="submit" class="btn btn-primary" value="Import" name="import" />
</form>
</fieldset>
</body>
</html>

Menjalankan aplikasi

langkah selanjutnya adalah menjalankan aplikasi dengan mengakses URL localhost/import_excel jika berhasil maka anda akan mendapatkan tampilan halaman index.php seperti gambar di bawah ini.

yang anda dapatkan adalah tabel dengan data / record kosong, lanjut kita coba import file excel nya, silahkan klik tulisan IMPORT DATA DARI EXCEL maka anda akan mendapatkan halaman import data seperti berikut ini

Lanjut dengan membuat sebuah file excel dengan nama mahasiswa.xlsx misalnya kemudian pada cell pertama buatlah header NO, NIM, Nama, IPK dan Jurusan. Kemudian di bawah header bisa anda isi dengan data, untuk lebih jelas anda bisa lihat gambar di bawah ini 



Setelah data excel di isi maka langkah selanjutnya adalah mengimport file mahasiswa.xlsx (lihat gambar di bawah ini

Silahkan anda klik import, tunggu hingga proses import data selesai, jika berhasil maka anda akan mendapatkan tampilan seperti gamber berikut di index.php


Sampai tahap ini anda telah berhasil membuat Import data excel ke MySQL dengan phpspreadsheet di PHP, bagaimana? mudah bukan? pastinya mudah ya, tapi bila anda masih bingung dan masih penasaran dengan import data excel ke MySQL dengan PHPSpreadSheet di PHP saya sudah siapkan source code lengkap nya, silahkan anda download source code lengkapnya di link berikut ini

DOWNLOAD

Demikian tutorial Import data excel ke MySQL dengan phpspreadsheet di PHP, silahkan di coba dan silahkan di implementasikan ke project yang sedang anda buat, pantengin terus www.hakkoblogs.com untuk terus mendapatkan info tutorial terbaru terkait pemrograman dan source code aplikasi lainnya.

Ikatlah ilmu dengan menulisnya, semoga tulisan ini bisa bermanfaat untuk anda yang sedang membacanya, tetap semangat dalam belajar.


Happy Coding & Programming

0 Response to "Import data excel ke MySQL dengan phpspreadsheet di PHP"

Post a Comment

Berkomentar dengan bijak dan sopan.

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel