Studi Kasus : Melakukan Export data dari Database (Mysql) ke file Excel dalam CodeIgniter
Requirements : Webserver Package, already installed. CodeIgniter.
Export data sangat dibutuhkan apabila kita mendevelop aplikasi, terutama untuk aplikasi perkantoran. Sebagian besar perkantoran masih menggunakan excel untuk memanage data mereka, karena excel memang salah satu aplikasi paling awal yang digunakan untuk memanajemen data perkantoran.
Step 1 : Konfigurasi CI
- Buka file config.php yang berada dalam folder system-application-config-config.php
- Ubah base url, sesuaikan dengan lokasi dimana folder CI-mu berada (tempat ekstrak-an tadi). Contoh : Folder CI anda berada dalam folder www/ci
maka ubah baris$config['base_url']="http://example.com/";
dengan
$config['base_url'] = "http://localhost/ci/"; - Setting database. Buka file database.php yang berada dalam folder yang sama dengan config.php. Ubah hostname, username, password, dan nama database. Sesuaikan dengan pengaturan mysql anda. Contoh :
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "db_tutorial";
Step 2 : Siapkan Database
- Buat database dengan nama db_tutorial (via phpmyadmin)
- Siapkan tabel dengan nama tb_book (untuk strukturnya, lihat gambar dibawah ini)

- Insertkan beberapa sample data, sebagai contoh insertkan data seperti tabel dibawah ini.

- Ok, we’re done with database !
Step 3 : Membuat Controller
- Ketikkan script berikut,
<?php class Buku_con extends Controller { public function Buku_con() { parent::__construct(); $this->load->model('buku_model');//load the model $this->load->library('pagination'); } //function to get the data from tb_book function getBuku() { $data['title'] = 'menampilkan isi buku'; $data['detail'] = $this->buku_model->getBuku();//call the model and save the result in $detail $this->load->view('buku_view', $data); } //function to export to excel function toExcelAll() { $query['data1'] = $this->buku_model->ToExcelAll(); $this->load->view('excel_view',$query); } } ?> - Simpan dengan nama buku_con dalam folder system-application-controllers
- Penjelasan :Lihat di komen script.
Step 4 : Membuat Model
- Ketikkan script berikut,
<?php class Buku_model extends Model { function Buku_model() { parent::Model(); } function getBuku() { $this->db->select('*'); $this->db->from('tb_book'); $this->db->order_by('id','DESC'); $getData = $this->db->get(); if($getData->num_rows() > 0) return $getData->result_array(); else return null; } //query for get all data function toExcelAll() { $this->db->select('*'); $this->db->from('tb_book'); $this->db->order_by('id','desc'); $getData = $this->db->get(); if($getData->num_rows() > 0) return $getData->result_array(); else return null; } } ?> - Simpan dalam folder system-application-models, dengan nama buku_model.php
Step 5 : Membuat View (yang menampilkan link untuk export)
- Ketikkan script berikut,
<h4>Book Data</h4> <?php if(count($detail) > 0) { ?> <table border="1"> <tr> <th>ID</th> <th>Title</th> <th>Author</th> </tr> <?php foreach($detail as $rows) { echo "<tr>"; echo " <td>". $rows['id']."</td> <td>". $rows['title'] ."</td> <td>". $rows['author'] ."</td> "; } ?> </table> <?php } ?> <br> <br> <a href='toExcelAll'><span style='color:green;'>Export All Data</span></a> - Simpan dalam folder system-application-views, dengan nama buku_view.php
- Penjelasan :
$detaildidapatkan dari controller, variabel ini berisi data dari tb_book (hasil dari model). Kemudian data ditampilkan dalam bentuk arrays.
Step 6 : Membuat View (view untuk menconvert ke excel)
- Ketikkan script berikut,
<?php header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=exceldata.xls"); header("Pragma: no-cache"); header("Expires: 0"); ?> <table border='1' width="70%"> <tr> <td>ID</td> <td>TITLE</td> <td>AUTHOR</td> </tr> <? foreach($data1 as $item) { ?> <tr> <td><?=$item['id']?></td> <td><?=$item['title']?></td> <td><?=$item['author']?></td> </tr> <? } ?> </table> - Simpan dalam folder system-application-views, dengan nama excel_view.php
Step 7 : Testing Code
- Buka browser, pergi ke http://localhost/namaFolderCIKamu/buku_con/getBuku
- Anda akan melihat tampilan seperti berikut,
- Klik pada link Export to excell, maka browser akan otomatis mendownload file excel,
- Buka file excel yang telah di download, maka data dari tb_book akan ditampilkan

Silahkan mencoba
Happy Coding ![]()
Hal yang juga menarik:
Hak Cipta
Semua skrip dan teknik dalam artikel di itx.web.id boleh digunakan sebagaimana kehendakmu tanpa perlu mencantumkan sumber. Kamu tidak boleh mengkopi seluruh artikel, dalam Bahasa Indonesia ataupun diterjemahkan ke dalam bahasa lain.
This post is also available in: English
English
Indonesia
Tips yang bagus sekali untuk database, makasih
Nice share. Mohon bantuannya untuk buat worksheet yang lebih 1.
wew..mas..yang ini udah sesuai tutor saya ikuti tapi ga mau juga….gimana ini….???? kalao di settingan routesnya emang ga dirubah ya, trus autoloadnya juga??? kasi yang complate ya mas…..kalau bisa kirimkan ke fb saya mas, email : alien_awan44@yahoo.com makasihh mas…. lg butuhh ini
sama nih.. emang ga ada settingan routesnya ya??
selalu object not found deh..
wew..mas..yang ini udah sesuai tutor saya ikuti tapi ga mau juga….gimana ini….???? kalao di settingan routesnya emang ga dirubah ya, trus autoloadnya juga??? kasi yang complate ya mas…..kalau bisa kirimkan ke fb saya mas, email : alien_awan44@yahoo.com makasihh mas….
wadowh panjang banget”" ijin ngikuti kang maklum newbie nih
salam from hpnokia.blogspot.com
kalo misalnya tampilan yg udah jadi di web..trus upload ke excel bisa? jadi sumber’a bkn dari database tapi dari tampilan view web’a?
biar bisa, ubah setting autoload na seperti ini…
$autoload['libraries'] = array(‘database’);
Thank you
it works for me
thx infonya…
udah aq coba, tp klo record berisi (misal) 9223372036854775807 ato number lebih dari 15 digit, di excel jadinya 9.22337E+18 dan klo aq ganti ke text/lainnya malah berubah sm yg di dB.
mohon pencerahannya
thx
Makasih banget buat sharingnya. kebetulan bgt sesuai dengan yg saya cari….
“thx infonya…
udah aq coba, tp klo record berisi (misal) 9223372036854775807 ato number lebih dari 15 digit, di excel jadinya 9.22337E+18 dan klo aq ganti ke text/lainnya malah berubah sm yg di dB.
mohon pencerahannya
thx”
samaaa…mhon pencerahannya… (funkydance)
Mau tanya, klo file hasil exportnya Read Only bagaimana ya. Thx, mohon reply nya.
Thanks yah gan