Paket Web Aplikasi

Cara Mengimport data Excel ke MySQL dengan PHP dan Bootstrap




Oke pada kesempatan kali ini saya memberikan tutorial singkat untuk mengimport data excel ke database MySQL dengan PHP, fitur import data diperlukan untuk mempermudah user migrasi data dari excel ke database MySQL.

Tujuan di buatkannya fitur import yaitu mempermudah user migrasi data tanpa harus menginputnya satu per satu, bayangkan kalau data yang ada sebanyak 10ribu.? sanggup menginput data one by one.? tentunya anda bosan melakukan hal yang sama berulang ulang.

Dengan adanya fitur import data excel ke MySQL memudahkan user dan mempercepat migrasi data.
Untuk mengimport data dari excel kita memerlukan excelreader.php. 

  • Langkah awal adalahmembuat database dengan nama nilai kemudian dumping SQL berikut di database nilai.

-- phpMyAdmin SQL Dump
-- version 4.2.11
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: 16 Sep 2016 pada 23.36
-- Versi Server: 5.6.21
-- PHP Version: 5.5.19

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `smk`
--

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

--
-- Struktur dari tabel `nilai`
--

CREATE TABLE IF NOT EXISTS `nilai` (
`id` int(5) NOT NULL,
  `semester` int(2) NOT NULL,
  `kode_pelajaran` char(4) NOT NULL,
  `kode_guru` char(5) NOT NULL,
  `kode_kelas` char(4) NOT NULL,
  `kode_siswa` char(5) NOT NULL,
  `nilai_tugas1` int(4) NOT NULL,
  `nilai_tugas2` int(4) NOT NULL,
  `nilai_tugas3` int(4) NOT NULL,
  `nilai_tugas4` int(4) NOT NULL,
  `nilai_tugas5` int(4) NOT NULL,
  `nilai_tugas6` int(4) NOT NULL,
  `nilai_tugas7` int(4) NOT NULL,
  `nilai_tugas8` int(4) NOT NULL,
  `nilai_tugas9` int(4) NOT NULL,
  `nilai_tugas10` int(4) NOT NULL,
  `nilai_tugas11` int(4) NOT NULL,
  `nilai_tugas12` int(4) NOT NULL,
  `nilai_tugas13` int(4) NOT NULL,
  `nilai_uts` int(4) NOT NULL,
  `nilai_uas` int(4) NOT NULL,
  `keterangan` varchar(100) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `nilai`
--

INSERT INTO `nilai` (`id`, `semester`, `kode_pelajaran`, `kode_guru`, `kode_kelas`, `kode_siswa`, `nilai_tugas1`, `nilai_tugas2`, `nilai_tugas3`, `nilai_tugas4`, `nilai_tugas5`, `nilai_tugas6`, `nilai_tugas7`, `nilai_tugas8`, `nilai_tugas9`, `nilai_tugas10`, `nilai_tugas11`, `nilai_tugas12`, `nilai_tugas13`, `nilai_uts`, `nilai_uas`, `keterangan`) VALUES
(1, 1, 'P001', 'G0002', 'K001', 'S0002', 75, 60, 75, 60, 75, 60, 75, 60, 75, 60, 60, 60, 85, 80, 80, 'Delapan Puluh'),
(2, 1, 'P001', 'G0003', 'K001', 'S0003', 70, 60, 75, 60, 75, 60, 75, 60, 75, 60, 60, 60, 60, 75, 80, 'Delapan Puluh'),
(3, 1, 'P001', 'G0004', 'K001', 'S0004', 75, 80, 75, 60, 75, 60, 75, 60, 75, 60, 60, 60, 60, 75, 80, 'Delapan Puluh'),
(4, 1, 'P001', 'G0005', 'K001', 'S0006', 68, 70, 75, 60, 75, 60, 75, 60, 75, 60, 60, 60, 60, 85, 80, 'Delapan Puluh'),
(5, 1, 'P001', 'G0001', 'K002', 'S0007', 70, 70, 75, 60, 75, 60, 75, 60, 75, 60, 60, 60, 60, 75, 79, 'Tujuh Puluh Sembilan'),
(6, 1, 'P001', 'G0002', 'K002', 'S0010', 78, 80, 75, 60, 75, 60, 75, 60, 75, 60, 60, 60, 60, 75, 85, 'Delapan Puluh Lima'),
(7, 1, 'P001', 'G0002', 'K002', 'S0009', 78, 80, 75, 60, 75, 80, 75, 60, 75, 60, 60, 60, 60, 75, 80, 'Delapan Puluh'),
(8, 1, 'P001', 'G0002', 'K002', 'S0008', 85, 80, 75, 60, 75, 60, 75, 60, 75, 60, 60, 60, 60, 85, 90, 'Sembilan Puluh'),
(9, 1, 'P001', 'G0002', 'K002', 'S0005', 75, 70, 75, 60, 75, 60, 75, 60, 75, 60, 60, 60, 60, 75, 80, 'Delapan Puluh'),
(10, 1, 'P001', 'G0001', 'K002', 'S0007', 80, 100, 75, 60, 75, 60, 75, 60, 75, 60, 60, 60, 60, 100, 90, 'Sembilan Puluh'),
(19, 2, 'P001', 'G0006', 'K004', 'S0016', 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 'ok'),
(12, 2, 'P008', 'G0006', 'K002', 'S0009', 80, 70, 75, 60, 75, 60, 75, 60, 75, 60, 60, 60, 60, 90, 80, 'Delapan Puluh'),
(13, 1, 'P003', 'G0005', 'K003', 'S0002', 80, 80, 75, 60, 75, 60, 75, 60, 75, 60, 60, 60, 60, 75, 80, 'Delapan Puluh'),
(14, 1, 'P003', 'G0002', 'K003', 'S0002', 80, 80, 75, 60, 75, 60, 75, 60, 75, 60, 60, 60, 60, 80, 80, 'Selapan Puluh'),
(15, 1, 'P004', 'G0006', 'K001', 'S0005', 50, 0, 75, 60, 75, 60, 75, 60, 75, 60, 60, 60, 60, 80, 80, 'Delapan Puluh'),
(18, 1, 'P010', 'G0006', 'K001', 'S0006', 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 'LULUS');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `nilai`
--
ALTER TABLE `nilai`
 ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `nilai`
--
ALTER TABLE `nilai`
MODIFY `id` int(5) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=20;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


  • Kemudian membuat form untuk import data, silahkan copas code berikut 

 <?php
//koneksi ke database, username,password  dan namadatabase menyesuaikan 
mysql_connect('localhost', 'root', '');
mysql_select_db('nilai');
 
//memanggil file excel_reader
require "excel_reader.php";
 
//jika tombol import ditekan
if(isset($_POST['submit'])){
 
    $target = basename($_FILES['filepegawaiall']['name']) ;
    move_uploaded_file($_FILES['filepegawaiall']['tmp_name'], $target);
    
    $data = new Spreadsheet_Excel_Reader($_FILES['filepegawaiall']['name'],false);
    
//    menghitung jumlah baris file xls
    $baris = $data->rowcount($sheet_index=0);
    
//    jika kosongkan data dicentang jalankan kode berikut
    $drop = isset( $_POST["drop"] ) ? $_POST["drop"] : 0 ;
    if($drop == 1){
//             kosongkan tabel pegawai
             $truncate ="TRUNCATE TABLE nilai";
             mysql_query($truncate);
    };
    
//    import data excel mulai baris ke-2 (karena tabel xls ada header pada baris 1)
    for ($i=2; $i<=$baris; $i++)
    {
//       membaca data (kolom ke-1 sd terakhir)
      $id            = $data->val($i, 1);
      $semester      = $data->val($i, 2);
      $kode_pelajaran= $data->val($i, 3);
      $kode_guru     = $data->val($i, 4);
      $kode_kelas    = $data->val($i, 5);
      $kode_siswa    = $data->val($i, 6);
      $nilai_tugas1  = $data->val($i, 7);
      $nilai_tugas2  = $data->val($i, 8);
      $nilai_tugas3  = $data->val($i, 9);
      $nilai_tugas4  = $data->val($i, 10);
      $nilai_tugas5  = $data->val($i, 11);
      $nilai_tugas6  = $data->val($i, 12);
      $nilai_tugas7  = $data->val($i, 13);
      $nilai_tugas8  = $data->val($i, 14);
      $nilai_tugas9  = $data->val($i, 15);
      $nilai_tugas10  = $data->val($i, 16);
      $nilai_tugas11  = $data->val($i, 17);
      $nilai_tugas12  = $data->val($i, 18);
      $nilai_tugas13  = $data->val($i, 19);
      $nilai_uts      = $data->val($i, 20);
      $nilai_uas      = $data->val($i, 21);
      $keterangan     = $data->val($i, 22);      
 
//      setelah data dibaca, masukkan ke tabel pegawai sql
      $query = "INSERT INTO nilai (semester, kode_pelajaran, kode_guru, kode_kelas, kode_siswa, nilai_tugas1, nilai_tugas2, nilai_tugas3, nilai_tugas4, nilai_tugas5, nilai_tugas6, nilai_tugas7, nilai_tugas8, nilai_tugas9, nilai_tugas10, nilai_tugas11, nilai_tugas12, nilai_tugas13, nilai_uts, nilai_uas, keterangan) VALUES 
                      ('$semester', '$kode_pelajaran', '$kode_guru', '$kode_kelas', '$kode_siswa', '$nilai_tugas1', '$nilai_tugas2', '$nilai_tugas3', '$nilai_tugas4', '$nilai_tugas5', '$nilai_tugas6', '$nilai_tugas7', '$nilai_tugas8', '$nilai_tugas9', '$nilai_tugas10', '$nilai_tugas11', '$nilai_tugas12', '$nilai_tugas13', '$nilai_uts', '$nilai_uas', '$keterangan')";
      $hasil = mysql_query($query);
    }
    
    if(!$hasil){
//          jika import gagal
          die(mysql_error());
      }else{
//          jika impor berhasil
          echo '<div class="alert alert-success alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>Data berhasil di import</div>';
    }
    
//    hapus file xls yang udah dibaca
    unlink($_FILES['filepegawaiall']['name']);
}
 
?>
 
<form name="myForm" id="myForm" onSubmit="return validateForm()" action="nilai_importxls.php" method="post" enctype="multipart/form-data">
    <input type="file" id="filepegawaiall" class="form-control" name="filepegawaiall" required /><br />
    <input type="submit" name="submit" class="brn btn-sm btn-success" value="Import" /><br/>
    <label><input type="checkbox" name="drop" value="1" /> <u>Kosongkan tabel sql terlebih dahulu.</u> </label>
</form>
 
<script type="text/javascript">
//    validasi form (hanya file .xls yang diijinkan)
    function validateForm()
    {
        function hasExtension(inputID, exts) {
            var fileName = document.getElementById(inputID).value;
            return (new RegExp('(' + exts.join('|').replace(/\./g, '\\.') + ')$')).test(fileName);
        }
 
        if(!hasExtension('filepegawaiall', ['.xls'])){
            alert("Hanya file XLS (Excel 2003) yang diijinkan.");
            return false;
        }
    }
</script>


  • simpan dengan nama import.php kemudian jalankan file tersebut di web server bila berhasil maka anda akan mendapatkan form import seperti dibawah ini :

Untuk download lengkap source codenya anda bisa langsung ke repository saya di GitHub di link berikut ini :


Turtorial singkat sudah jelaskan dan link download juga sudah saya berikan, sekarang tinggal anda yang mengaplikasikan dan mengembangkannya, silahkan di coba karena tanpa mencoba kita tidak akan dapat apa apa, tetap semangat dalam belajar karena pada hakekatnya belajar itu wajib hukumnya.

Semoga tutorial singkat ini bisa bermanfaat dan berguna bagi putra - putri indonesia.

Happy Coding & Programming

Previous
Next Post »

Komentar