Membuat import data excel ke mysql dengan php

Pada tutorial sebelumnya kita sudah membuat export data excel menggunakan php di artikel Membuat Laporan Excel Dengan PHP, sekarang kita lanjut membuat import data excel menggunakan excel spreadsheet class php untuk classnya bisa di download disini ya excel spreadsheet, setelah di download taruh dalam project kamu, kemudian modifikasi file index dari project sebelumnya sehingga kodenya menjadi seperti di bawah ini :

<?php
ob_start();
session_start(); //aktifkan pemeriksaan session 
if (empty($_SESSION['username'])) { 
	//cek apakah user yang mengakses halaman ini sudah mendapatkan session pengenal sewaktu login
	header('location:login.php'); //jika tidak, arahkan untuk login
}
?>
<!DOCTYPE html>
<html lang="id">
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title>Administrator</title>
		<link href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
		<link href="//cdn.datatables.net/1.10.21/css/jquery.dataTables.min.css" rel="stylesheet">

	</head>
	<body>
		<div class="container">
			<nav class="navbar navbar-default" role="navigation">
				<!-- Brand and toggle get grouped for better mobile display -->
				<div class="navbar-header">
					<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
						<span class="sr-only">Toggle navigation</span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</button>
					<a class="navbar-brand" href="#">Home</a>
				</div>
			
				<div class="collapse navbar-collapse navbar-ex1-collapse">
					<ul class="nav navbar-nav navbar-right">
						<li class="dropdown">
							<a href="#" class="dropdown-toggle" data-toggle="dropdown">Action <b class="caret"></b></a>
							<ul class="dropdown-menu">
								<li><a href="#">Profil</a></li>
								<li><a href="logout.php">Logout</a></li>
							</ul>
						</li>
					</ul>
				</div><!-- /.navbar-collapse -->
			</nav>
			<div class="panel panel-primary">
				  <div class="panel-heading">
						<h3 class="panel-title">Administrator Panel</h3>
				  </div>
				  <div class="panel-body">
				  		<!-- jika session pengenal ada tampilkan -->
						Selamat Datang <?php echo $_SESSION['username']; ?><hr>
						<a href="pdf.php" class="btn btn-warning">Cetak PDF</a>
						<a href="excel.php" class="btn btn-warning">Download Excel</a>
						<form action="import-excel.php" method="POST" enctype="multipart/form-data" >
			                <table class="table">
			                    <tr>
			                        <td width="25%">Pilih File</td>
			                        <td width="75%"><input type="file" name="file_excel" maxlength="255"/></td>
			                    </tr>
			                    <tr>
			                        <td><a href="example.xls" class="btn btn-info">Download Template</a> </td>
			                        <td>
			                            <button class="btn btn-success" type="submit" name="upload" value="upload">Import</button>
			                        </td>
			                    </tr>
			                    <tr>
			                        <td></td>
			                        <td></td>
			                    </tr>
			                </table>
			                <br />
			                
			            </form>
						<br>
						<table id="myTable" class="display" style="width:100%">
					        <thead>
					            <tr>
					                <th>No</th>
					                <th>Username</th>
					                <th>Password</th>
					            </tr>
					        </thead>
					        <tbody>
					            <?php 
					            	include 'koneksi.php';
					            	$no=1;
					            	foreach ($db->query("SELECT * FROM user") as $list) {
					            		echo "<tr>
								                <td>$no</td>
								                <td>$list[username]</td>
								                <td>$list[password]</td>
								            </tr>";
								    $no++;
					            	}
					            ?>
					        </tbody>
					    </table>
				  </div>
			</div>
		</div>
		
		<!-- jQuery -->
		<script src="//code.jquery.com/jquery.js"></script>
		<script src="//cdn.datatables.net/1.10.21/js/jquery.dataTables.min.js"></script>
		<!-- Bootstrap JavaScript -->
		<script src="//netdna.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
		<script>
			$(document).ready( function () {
			    $('#myTable').DataTable();
			} );
		</script>
	</body>
</html>

Kemudian buat file baru dengan nama import-excel.php dan copy syntaks dibawah ini kedalam file tersebut :

<?php
    include "koneksi.php";
    include "excel_reader.php";
    
   
        $type =explode(".",$_FILES['file_excel']['name']);
        
        if (empty($_FILES['file_excel']['name'])) {
            ?>
                <script language="JavaScript">alert('Oops! Please fill all / select file ...');document.location='./';</script>
            <?php
        }
        else if(strtolower(end($type)) !='xls'){
            ?>
                <script>alert('Oops! Please upload only Excel XLS file ...');document.location='./';</script>
            <?php
        }
        
        else{
        $target = basename($_FILES['file_excel']['name']) ;
        move_uploaded_file($_FILES['file_excel']['tmp_name'], $target);
    
        $data    =new Spreadsheet_Excel_Reader($_FILES['file_excel']['name'],false);
    
        $baris = $data->rowcount($sheet_index=0);
    
        for ($i=2; $i<=$baris; $i++){
            $id        =$data->val($i, 1);
            $username    =$data->val($i, 2);
            $password    =md5($data->val($i, 3));
            
            $query = $db->query("INSERT INTO user SET username='$username', password='$password'");        
        }
    
            if(!$query){
                ?>
                    <script> alert('<b>Oops!</b> 404 Error Server.');document.location='./';</script>
                <?php
            }
            else{
                ?>
                    <script>alert('Good! Import Excel XLS file success...');document.location='./';</script>
                <?php
            }
        unlink($_FILES['file_excel']['name']);
        }
    

    ?>

    

Jika sudah, buatlah sebuah template yang menyesuaikan ke kolom tabel user pada database seperti contoh di bawah ini :

Kemudian coba lakukan import file tadi, jika masih terjadi error, silahkan download kode lengkapnya yang sudah saya sertakan dibawah ini

download

Jika masih ada pertanyaan dan kendala jangan sungkan memberi saran dan kritik di kolom komentar, semoga tutorial ini bermanfaat

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *