Laporan didalam sebuah sistem informasi merupakan salah satu komponen penting yang harus ada, dimana laporan digunakan untuk menampilkan informasi atau data - data yang telah diolah kepada pengguna. format laporan yang sering digunakan didalam sistem diantaranya adalah .PDF (Portable Document Format) atau .XLS (Excel).
Untuk sesi kali ini Saya akan membahas bagaimana mencetak data dari mysql kedalam format excel dengan menggunakan PHP dan library Phpexcel. berikut adalah langkah - langkahnya :
- Buatlah direktori baru pada pada folder htdocs (jika anda menggunakan Xampp), pada tutorial ini saya menggunakan nama folder exportexcel.
- Download library phpexcel pada situs resminya https://phpexcel.codeplex.com/. didalam file .zip yang telah Anda download terdapat tiga folder (Classes, Documentation dan Example). dari ketiga folder tersebut kita hanya menggunakan folder Classes untuk mencetak data kedalam format excel. Dengan demikian, silahkan extract folder Classes kedalam folder exportexcel yang sudah dibuat sebelumnya.
- Buat database baru dengan nama export_db (nama database dapat disesuaikan dengan kebutuhan Anda).
- Kemudian buat tabel mahasiswa dengan nama mhs (nama tabel dapat disesuaikan dengan selera) yang terdiri dari field nim, nama, jnsklm, tgllhr, alamat, nohp, aktif, foto, create_at dan update_at. Anda dapat mencopy query berikut untuk membuat tabel mhs.
CREATE TABLE `mhs` ( `nim` varchar(15) NOT NULL, `nama` varchar(50) DEFAULT NULL, `jnsklm` enum('L','P') DEFAULT NULL, `tgllhr` date DEFAULT NULL, `alamat` varchar(100) DEFAULT NULL, `nohp` varchar(12) DEFAULT NULL, `aktif` enum('Y','N') DEFAULT NULL, `foto` varchar(255) DEFAULT NULL, `create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`nim`) )
- Masukkan data sampel mahasiswa untuk melengkapi tabel mahasiswa. Anda dapat mencopy query berikut ini untuk mengisi tabel mhs.
insert into `mhs`(`nim`,`nama`,`jnsklm`,`tgllhr`,`alamat`,`nohp`,`aktif`,`foto`,`create_at`,`update_at`) values ('M0001','Saeful Fahmi','L','2015-08-26','Jl. Garuda G1 No. 55 ','087833225300','Y','default.jpg','2015-08-26 08:44:30','2015-08-21 11:39:52'), ('M0002','Bella Relefia','P','2015-08-13','Jl. Mardio 99 Semarang','098998889987','Y','default.jpg','2015-08-26 08:44:31','2015-08-21 11:40:44'), ('M0003','Fitri Aryanti','P','2015-08-26','Jl. Anjasmoro no. 55 Semarang','088988889998','Y','default.jpg','2015-08-26 08:44:32','2015-08-21 11:44:25');
- Buat file export.php pada direktori exportexcel dengan script seperti dibawah ini (script sudah saya kasih keterangan untuk mempermudah Anda memahami kode). jangan lupa sesuaikan koneksi databasenya.
<?php //Membuat Koneksi Mysql mysql_connect("localhost","root","") or die ("Koneksi Gagal"); mysql_select_db("export_db") or die ("Database Tidak Terakses"); //Membuat Query $result=mysql_query("SELECT * FROM mhs"); require_once 'Classes/PHPExcel.php'; $objPHPExcel = new PHPExcel(); // Setting Worsheet yang aktif $objPHPExcel->setActiveSheetIndex(0); //Menentukan baris awal $rowCount = 1; //Menentukan kolom awal $column = 'A'; //Mencetak header berdasarkan field tabel for ($i = 0; $i < mysql_num_fields($result); $i++) { $objPHPExcel->getActiveSheet()->setCellValue($column.$rowCount, mysql_field_name($result,$i)); $column++; } //menentukan baris untuk input data $rowCount = 2; //Proses cetak data ke excel while($row = mysql_fetch_row($result)) { $column = 'A'; for($j=0; $j<mysql_num_fields($result);$j++) { if(!isset($row[$j])) $value = NULL; elseif ($row[$j] != "") $value = strip_tags($row[$j]); else $value = ""; if($column=='F'){ //mencetak jika kolom tersebut berbentuk string. $objPHPExcel->getActiveSheet()->setCellValueExplicit($column.$rowCount, $value, PHPExcel_Cell_DataType::TYPE_STRING); }else{ //mencetak secara default $objPHPExcel->getActiveSheet()->setCellValue($column.$rowCount, $value); } $column++; } $rowCount++; } // Mencetak File Excel header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="laporan-mhs.xls"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); ?>
- Silahkan Anda coba dengan mengetikkan alamat ini : http://localhost/exportexcel/export.php pada browser.
- Jika berhasil maka akan terdownload file dengan nama laporan-mhs.xls seperti dibawah ini.
Sekian tutorial tentang bagaimana export data ke excel dengan menggunakan PHP, Mysql dan library Phpexcel. Jika ada pertanyaan, silahkan komen dibawah. Salam Blogger.
Source Code : Download Disini atau Download Disini [Mirror]
Bismillah, aku dah buat tapi koq hasilnya malah keluar karakter unicode ya.
BalasHapusKnp ya?