Just Share Information and Experience

Wednesday, 15 November 2017

Cara Import Excel ke mysql dengan phpexcel

egan-jy.blogspot.co.id

Artikel Cara Import Excel ke mysql dengan phpexcel ini merupakan lanjutan dari artikel sebelumnya yang sudah saya posting, yaitu : Cara Export Data Dari Database ke Excel Dengan PHPExcel

Dari judulnya, kayaknya ga perlu saya cerita panjang lebar lagi karena isinya sama seperti pada postingan saya yang sebelumnya, bedanya kalau yang sebelumnya merupakan proses export sedangkan pada artikel ini merupakan proses importnya. Ok langsung saja ke prakteknya saja.

Berikut adalah struktur file yang saya gunakan, dan seperti biasa link downloadnya sudah saya sertakan pada akhir artikel  ini.

egan-jy.blogspot.co.id

hal-hal yang perlu dipersiapkan :
1. Aplikasi web server dan mysql server, bisa menggunakan XAMPP
2. library PHPExcel, bisa didownload pada link dibawah
3. framework css bootstrap, opsional untuk tampilan
4. Database, bisa diimport dari hasil download file dibawah

Selanjutnya mari kita buat masing-masing file .php yang dibutuhkan

koneksi.php


<?php
$database = 'db_data_ajax'; //nama database
$user = 'root'; //nama user db
$pass = ''; //pass db
$host = 'localhost'; //host db, sesuaikan dengan settingan di komputer masing2.

$conn = mysqli_connect($host,$user,$pass,$database);

if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

?>

index.php

<html>
<head>
<!-- CSS untuk bootstrap -->
<link rel="stylesheet" href="css/bootstrap.css" type="text/css">

</head>
<body>

<?php
include"koneksi.php";

$sql = "select * from data_provinsi";
$result = mysqli_query($conn,$sql);
?>
<div class="container">
<form method="POST" action="import.php" id="import_excel" name="import_excel" enctype="multipart/form-data">
<div class="row">
<div class="col-md-5">
<div class="form-group">
<label class="control-label">File Excel :</label>
<input type="file" name="file_excel" class="form-control">
</div>
<button type="submit" name="btn_submit" class="btn btn-primary" id="btn_submit">Import Excel</button>
</div>
</div>
</form>
<br>
<table class="table table-bordered">
    <thead>
    <tr>
    <th>Id Provinsi</th>
        <th>Nama Provinsi</th>
    </tr>
    </thead>
    <tbody>
        <?php
                while($row=mysqli_fetch_assoc($result)){

                    echo"<tr><td>".$row['id_provinsi']."</td><td>".$row['nama_provinsi']."</td></tr>";

                }
        ?>
    </tbody>
    </table>
 </div>

<!-- js untuk jquery -->
<script src="js/jquery-1.11.2.min.js"></script>
<!-- js untuk bootstrap -->
<script src="js/bootstrap.js"></script>

<script type="text/javascript">
$(document).ready(function(){
$('#import_excel').submit(function(evt){
            evt.preventDefault();
            var formData = new FormData(this);
            $('#btn_submit').text('Importing...').addClass('disabled');
            $.ajax({
                    type : 'POST',
                    url : $(this).attr('action'),
                    data : formData,
                    cache : false,
                    contentType : false,
                    processData : false,
                    success:function(response) {
                    if(response.st==1) {
                    //sukses
                    alert(response.pesan);
                    window.location.reload();
                    }

                    if(response.st==0) {
                    //gagal
                    alert(response.pesan);
                    $('#btn_submit').text('Import Excel').removeClass('disabled');
                    }
            },dataType:'json'
            });

            });
});
</script>
</body>
</html>


import.php

<?php

include"koneksi.php";
include"PHPExcel.php";

    $random = "file_upload_".rand(11111,99999);
    $target_file = $random.basename($_FILES["file_excel"]["name"]);
    $uploadOk = 1;

    if (move_uploaded_file($_FILES["file_excel"]["tmp_name"], $target_file)) {

        ini_set('memory_limit', '-1');
        $objReader = PHPExcel_IOFactory::createReader('Excel2007');

        $inputFileType = 'Excel2007';
        $sheetIndex = 0;
        $inputFileName = $target_file;

        $objReader = PHPExcel_IOFactory::createReader($inputFileType);
        $sheetnames = $objReader->listWorksheetNames($inputFileName);
        $objReader->setLoadSheetsOnly($sheetnames[$sheetIndex]);
     
        try {
        $objPHPExcel = $objReader->load($inputFileName);
        } catch(Exception $e) {
        die('Error loading file :' . $e->getMessage());
        }

        $worksheet = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
        $numRows = count($worksheet);

        //baca untuk setiap baris excel
        for ($i=1; $i <= $numRows ; $i++) {
            $sql = "INSERT INTO data_provinsi (nama_provinsi)
            VALUES ('".$worksheet[$i]['A']."')";

            if (mysqli_query($conn, $sql)) {
                $pesan= "Sukses Simpan Data!";

            } else {
                $pesan= "Error: " . $sql . "<br>" . mysqli_error($conn);
            }

        }

         unlink($target_file);


        $pesan ='Import Excel Success!';
        echo json_encode(array('st'=>1,'pesan'=>$pesan));
    } else {
        $pesan="Sorry, there was an error uploading your file.";
        echo json_encode(array('st'=>0,'pesan'=>$pesan));
    }


?>

Pada file index.php di atas, saya menggunakan tambahan jqury form submit agar tampilannya lebih menarik,,hehehheheh

ok, selanjutnya silahkan jalankan pada browser dan lakukan proses import file excel.
oh ya contoh file excel nya juga sudah saya sediakan pada link download di bawah ini.

egan-jy.blogspot.co.id
Halaman pertama saat dijalankan

egan-jy.blogspot.co.id
Tampilan informasi import berhasil

egan-jy.blogspot.co.id
Tampilan setelah import file


jika ada yang belum dipahami, bisa tinggalkan komentar di bawah ya..


No comments:

Post a Comment