Jumat, 31 Januari 2014

Tutorial mengenai pembuatan laporan dalam bentuk Excel sebenarnya telah banyak tersebar di google, akan tetapi disini saya akan memberikan tips agar pembuatanya jauh lebih mudah. Sekalian promosi Library CodeIgniter untuk membuat laporan excel, library ini saya namakan Excel Generator. Excel Generator ini merupakan class yang diturunkan dari PHPExcel. Lalu bagaimana cara menggunakannya ?

Bahan tambahan
Langkah kerja

Jika Anda telah mendownload semuanya, silahkan buat projet CodeIgniter anda dan pilih database sesuai kehendak Anda, disini saya menggunakan database 'test' dengan table 'users' dan isinya seperti berikut.

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `nama` varchar(100) NOT NULL,
  `jenis_kelamin` varchar(10) NOT NULL,
  `alamat` varchar(200) DEFAULT NULL,
  `email` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;


INSERT INTO `users` (`id`, `nama`, `jenis_kelamin`, `alamat`, `email`) VALUES
(1, 'Dida Nurwanda', 'Laki-laki', 'Pandeglang', 'didanurwanda@gmail.com'),
(2, 'Siwi Septi Hastuti', 'Perempuan', 'Pandeglang', '-'),
(3, 'Ahmad', 'Laki-laki', 'Serang', 'ahmad_hehe@gmail.com'),
(4, 'Saepul', 'Laki-laki', 'Lebak', 'sae_sae_pull@gmail.com');

Setelah itu buka file phpexcel yang telah Anda download tadi kemudian extract folder classes ke folder library pada project CodeIgniter Anda dan ubah namanya dengan nama "PHPExcel". Jangan lupa extract juga Excel_generator.php tentunya masih pada folder library. Jika semua sudah selesai, kemudian atur konfigurasi database anda. Kemudaian karena hanya contoh, silahkan buka controller welcome.php dan edit seperti berikut

<?php

class Welcome extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->database();
        $this->load->library('Excel_generator');
    }


    public function index() {
        $query = $this->db->get('users');
        $this->excel_generator->set_query($query);
        $this->excel_generator->set_header(array('Nama', 'Jenis Kelamin', 'Alamat', 'Email'));
        $this->excel_generator->set_column(array('nama', 'jenis_kelamin', 'alamat', 'email'));
        $this->excel_generator->set_width(array(25, 15, 30, 15));
        $this->excel_generator->exportTo2007('Laporan Users');
    }

}

Kemudian buka browser Anda dan buka link project Anda, nanti akan ada dialog download, silahkan open file excelnya. Untuk hasilnya seperti berikut.


Keren bukan, hehe.
Sebenarnya script utama pada untuk membuat file excel adalah hanya
$query = $this->db->get('users');
$this->excel_generator->set_query($query);
$this->excel_generator->set_column(array('nama', 'jenis_kelamin', 'alamat', 'email'));
$this->excel_generator->exportTo2007('Laporan Users');
Lalu apa bedanya jika scriptnya hanya seperti diatas ? ok saya jelaskan satu persatu.

$this->excel_generator->set_query($query);
Digunakan untuk memanggil query dari database.

$this->excel_generator->set_column(array('nama', 'jenis_kelamin', 'alamat', 'email'));
Digunakan untuk manampilkan field-field mana saja  yang akan ditampilkan pada excel. Field-field ini diampil dari table suatu database.

$this->excel_generator->exportTo2007('Laporan Users');
Digunakan untuk mengexport laporan kedalam bentuk file .xlsx (Excel 2007) dengan nama Laporan Users

$this->excel_generator->exportTo2003('Laporan Users');
Digunakan untuk mengexport laporan kedalam bentuk file .xls (Excel 2003) dengan nama Laporan Users

$this->excel_generator->set_width(array(25, 15, 30, 15));
Digunakan untuk menambahkan lebar kolom pada excel, jumlahnya harus sesuai dengan jumlah column yang anda masukan.

$this->excel_generator->set_header(array('Nama', 'Jenis Kelamin', 'Alamat', 'Email'));
Digunakan untuk menambahkan  Judul pada setiap kolom pada Excel.

$this->excel_generator->start_at(8);
Digunakan untuk memulai pembuatan laporan dari baris ke 8. Ini dapat dimanfaatkan untuk menambahkan Judul atau Header dokumen pada laporan Anda.

Download
Download
Password : didanurwanda.blogspot.com

20 komentar:

  1. tutorial bagus..
    coba datanya bukan text tapi angka.. eh jangan sekedar angka.. kasi angka dibelakang koma.. saya mau lihat hasilnya..

    BalasHapus
    Balasan
    1. normal kok bro, cuma kalo di db bentuknya "," di excel dia minta di convert. tapi kalo bentuknya "." jalan normal

      Hapus
    2. kalo angkanya panjang hasilnya 66277288600E+12 ...ini gmna caranya supaya angkanya tampil smuanya..

      Hapus
  2. Mantap Tutorial a mas,,,
    ane tunggu untuk Upload a ya ?? :)

    BalasHapus
  3. Mantep tutorialnya mas, langsung jalan. tp sayang untuk text angka yg didepannya ada angka nol jadi hilang semua, contoh: harusnya '00123' menjadi '123'. Caranya supaya angka tidak hilang gmana mas. trims sebelumnya

    BalasHapus
    Balasan
    1. iya ini gn caranya, mohon di respond donk

      Hapus
    2. maaf baru aktif ngeblog lagi. gimana ? udah bisa ?

      Hapus
    3. Terima kasih Sangat membantu. Hanya untuk data seperti nomer Handphone (yang ada leading zero) outputnya masih berantakan.

      Hapus
  4. Balasan
    1. seperti biasa, masukkan link sesuai dengan controller dan methodnya.
      seperti pada controller "report" dengan method "print()"
      berarti /index.php/report/print

      Hapus
  5. Ka cara tampilin data nya ga langsung di select ke table gimana yah? Jadi saya itu pengen menampilkan data yg tampil di programnya, misal : datanya di filter, di tampilkan yg tgl 1 desember - 10 desember aja. Cara ambil data yg tampilnya itu gimana? saya newbie banget dah ini hehehe

    BalasHapus
  6. kalo untuk impor gimana mas? kabarin aku di emailku ya mas

    BalasHapus
  7. Kalo mau nampilin dengan join 5 tabel gmn om? dan mau nambahin 1 kolom No gmn?soalnya di db saya tidak ada field no.

    BalasHapus
  8. mas cara membuat judul di exelnya gimana?

    BalasHapus
    Balasan
    1. kalo udah biasa pake php excel, bisa langsung aja ko pake method $this->excel_generator->start_at(line keberapa untuk tabel) untuk memberi jarak mulai. selanjutnya pake $this->excel_generator seperti biasa (method yg sama dengan new PHPExcel)

      Hapus
  9. Gan ane ada pertanyaan gan, bisa g nampilin gambar pada tiap baris dari cell gan
    cem data siswa gtu tapi ada gambarnya pada tiap baris sama nama nya gtu gan

    makasi buat petunjuknya gan

    BalasHapus
  10. kalau ada data 1 sama 0, terus kalau 1 jadi dibayar, 0 belum dibayar gmna?
    thanks

    BalasHapus
  11. gan boleh minta project nya ? mau liat penempatan phpexcelnya

    BalasHapus
  12. gimana kalo saya ingin melakukan merge column ?

    BalasHapus
  13. mas , cara set authors , last saved , dll gimana ya ? saya masih bingung...

    BalasHapus

Mohon tidak mencantumkan URL pada komentar yang bersifat promosi.