Membuat Import Excel Menggunakan Codeigniter Ajax

Import Excel adalah melakukan upload data dengan format excel. Import data ini sangat memudahkan kita dalam melakukan input data dengan jumlah yang banyak ke dalam database. Nah kali ini akan saya bahas pada artikel tentang cara Membuat Import Excel Menggunakan Codeigniter Ajax. Sebelum kita mulai, siapkan data di dalam database mysql seperti gambar di bawah ini.

Membuat Import Excel Menggunakan Codeigniter Ajax

Jika sudah teman-teman download terlebih dahulu file codeigniter disini dan file PHPExcel disini. Untuk PHPExcel gabungkan di dalam folder libraries pada codeigniter.

Lalu atur di bagian file config/database.php sesuai settingan kalian.

Membuat Import Excel Menggunakan Codeigniter Ajax

Atur juga di bagian config/autoload.php seperti gambar di bawah.

Membuat Import Excel Menggunakan Codeigniter Ajax

Jika sudah maka langkah selanjutnya untuk Membuat Import Excel Menggunakan Codeigniter Ajax adalah membuat file dengan nama Excel.php di dalam folder librariesnya sebagai berikut.

<?php

if (!defined('BASEPATH')) exit('No direct script access allowed');

require_once('PHPExcel.php');

class Excel extends PHPExcel{

               public function __construct(){

                              parent::__construct();

               }

}

?>

Lalu buat controller dengan nama Excel.import.php dengan beberapa fungsi untuk menampilkan data dan import data seperi berikut ini.

<?php

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Excel_import extends CI_Controller{

  public function __construct(){

    parent::__construct();

    $this->load->model('excel_import_model');

    $this->load->library('excel');

  }

  function index(){

    $this->load->view('excel_import');

  }

  function fetch(){

    $data = $this->excel_import_model->select();

    $output = '

    <h3 align="center">Total Data - '.$data->num_rows().'</h3>

    <table class="table table-striped table-bordered">

     <tr>

      <th>Name</th>

      <th>Email</th>

     </tr>

    ';

    foreach($data->result() as $row){

      $output .= '

      <tr>

      <td>'.$row->name.'</td>

      <td>'.$row->email.'</td>

      </tr>

      ';

    }

    $output .= '</table>';

    echo $output;

  }

 

  function import(){

    if(isset($_FILES["file"]["name"])){

      $path = $_FILES["file"]["tmp_name"];

      $object = PHPExcel_IOFactory::load($path);

      foreach($object->getWorksheetIterator() as $worksheet){

        $highestRow = $worksheet->getHighestRow();

        $highestColumn = $worksheet->getHighestColumn();

        for($row=2; $row<=$highestRow; $row++){

           $name = $worksheet->getCellByColumnAndRow(0, $row)->getValue();

           $email = $worksheet->getCellByColumnAndRow(1, $row)->getValue();

           $data[] = array(

            'name'  => $name,

            'email'   => $email

           );

        }

      }

      $this->excel_import_model->insert($data);

      echo 'Data Imported successfully';

    }

  }

}

?>

Jika sudah selesai maka dilanjutkan membuat model dengan nama Excel_import_model.php seperti pada script di bawah ini.

<?php

class Excel_import_model extends CI_Model{

               function select(){

                              $this->db->order_by('id', 'DESC');

                              $query = $this->db->get('import');

                              return $query;

               }

               function insert($data){

                              $this->db->insert_batch('import', $data);

               }

}

Langkah terakhir teman-teman buat file views dengan nama excel_import.php untuk membuat struktur htmlnya. Dengan function ajax di bawahnya untuk menampilkan data dan membantu proses input data ke database.

 

<!DOCTYPE html>

<html>

<head>

  <title>Membuat Import Excel Menggunakan Codeigniter Ajax</title>

  <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />

 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

</head>

<body>

 <div class="container">

  <h3 align="center">Membuat Import Excel Menggunakan Codeigniter Ajax</h3>

  <form method="post" id="import_form" enctype="multipart/form-data">

     <p><label>Pilih File Excel</label>

     <input type="file" name="file" id="file" required accept=".xls, .xlsx" /></p>

     <br />

     <input type="submit" id="import" name="import" value="Import" class="btn btn-info" />

  </form>

  <br />

  <div class="table-responsive" id="customer_data">

  </div>

 </div>

</body>

</html>

 

<script>

$(document).ready(function(){ 

  function load_data(){

    $.ajax({

      url:"http://localhost/shelli/codeigniter/ARTICLE/import/index.php/excel_import/fetch",

      method:"POST",

      success:function(data){

        $('#customer_data').html(data);

        console.log(data);

      }

    })

  }

  load_data();

 

  $('#import_form').on('submit', function(event){

    event.preventDefault();

    $.ajax({

      url:"http://localhost/shelli/codeigniter/ARTICLE/import/index.php/excel_import/import",

      method:"POST",

      data:new FormData(this),

      contentType:false,

      cache:false,

      processData:false,

      success:function(data){

        $('#file').val('');

        load_data();

      }

    })

  });

});

</script>

Jika di buka di halaman browser maka akan seperti pada gambar di bawah ini.

Membuat Import Excel Menggunakan Codeigniter Ajax

Demikian artikel tentang cara Membuat Import Excel Menggunakan Codeigniter Ajax semoga bermanfaat dan selamat mencoba.

9 April 2019

Webinar Gratis 2024


Selanjutnya Pada Bulan Maret 2024

Sabtu, 09 Maret 2024


10 Bahasa Rekomendasi Untuk Dipelajari di 2024

Python Developer, Data Science, Web Application

Kursus Python Django Web Application 2024 di DUMET School Mini Bootcamp Backend Laravel 11 Bulan Mei 2024 di DUMET School
Webinar Selanjutnya Mei 2024

Minggu, 26 Mei 2024, 09.00-13.00 WIB

(4 Jam Membuat Backend di Laravel 11)

chat