Export Data MySQL ke File Excel Menggunakan Codeigniter

Setelah berbagi cara import data dari excel ke mysql, sekarang saya akan berbagi tips bagaimana cara meng-export data yang diambil dari database ke dalam bentuk file excel. Proses Export ini lebih mudah daripada proses import. Di sini kita membutuhkan sebuah plugin yang menangani export file. Parameter yang dibutuhkan hanya query database dan nama file hasil keluarannya saja.

1. Siapkan file PHP dan rename dengan to_excel_pi.php. Tuliskan dalam file tersebut kode PHP berikut ini:

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

/*
* Excel library for Code Igniter applications
* Author: Derek Allard, Dark Horse Consulting, www.darkhorse.to, April 2006
*/

function to_excel($query, $filename='exceloutput')
{
     $headers = ''; // just creating the var for field headers to append to below
     $data = ''; // just creating the var for field data to append to below

     $obj =& get_instance();

     $fields = $query->field_data();
     if ($query->num_rows() == 0) {
          echo '<p>The table appears to have no data.</p>';
     } else {
          foreach ($fields as $field) {
             $headers .= $field->name . "\t";
          }

          foreach ($query->result() as $row) {
               $line = '';
               foreach($row as $value) {
                    if ((!isset($value)) OR ($value == "")) {
                         $value = "\t";
                    } else {
                         $value = str_replace('"', '""', $value);
                         $value = '"' . $value . '"' . "\t";
                    }
                    $line .= $value;
               }
               $data .= trim($line)."\n";
          }

          $data = str_replace("\r","",$data);

          header("Content-type: application/x-msdownload");
          header("Content-Disposition: attachment; filename=$filename.xls");
          echo "$headers\n$data";
     }
}
?>

Yang perlu diperhatikan jangan sampai ada whitespace setelah tag penutup PHP. SImpan file tersebut dalam folder system/plugins.

 

2. Siapkan controller untuk mengeksekusi export data. Untuk prakteknya, controller yang akan dibuat ini bisa dipanggil oleh link dari halaman web. Sisipkan fungsi export di dalam salah satu controller.

function export()
{
    $this->load->plugin('to_excel');
    $query = $this->db->query("select * from mytable");
    $nama = "output";
    to_excel($query, $nama);
}

Anda tinggal memanggil controller tersebut dari url. Dalam prakteknya variabel query tersebut bisa Anda ambil dari model supaya tetap menggunakan konsep MVC. Namun, karena contoh saja, query saya sisipkan dalam controller.

farid

Selamat datang dan salam kenal. Penulis merupakan lulusan Sekolah Tinggi Ilmu Statistik Jakarta jurusan Komputasi Statistik. Menekuni pemrograman web khususnya PHP dengan Yii Framework. Penggemar musik instrumen dan film Doraemon. Berasal dari Kota Lumpia Semarang dan pernah bertugas menjadi Staf Produksi dan IPDS di BPS Kabupaten Melawi. Sejak tahun 2016, mulai bertugas sebagai Staf Pengolahan Data di BPS Provinsi Kalimantan Barat

You may also like...

  • beben

    Yang pdf ada g mas ?? hhee…

    Oh iya,, script buat backup sama restore databse di codeigniter ada g mas ??

    Makasih.. Benny

    • farid

      pdf bisa pakai FPDF, tapi saya belum buat tutorialnya :)