September 16, 2016 thumb Cara Export Database ke Excel menggunakan PHPExcel

salam, kali ini saya ingin share tentang cara penggunaan library PHP excel yang mana kalau ditulisan yang lalu Membuat Download Excel Menggunakan Native PHP kita menggunakan Native milik PHP tanpa sama sekali menggunakan Library kali ini saya mau share bagaimana caranya membuat hal yang sama tetapi menggunakan Library PHPExcel. lah trus yang kemarin buat apa ? sebenarnya yang kemarin saya tulis juga masih tetap dipakai. khusus untuk masalah yang sederhana atau format yang sederhana sebaiknya pakai fungsi native yang kemarin saya share. tetapi untuk kasus yang lebih expert seperti formatting, pewarnaan, autowidth dll. tentu saja kalau pakai native  kita harus belajar sendiri mengoprek formatting excel. daripada susah-susah mendhing pakai library yang sudah ada.

tapi kali ini saya tidak membahas yang fitur-fitur tambahan seperti menambahkan merging dll. saya fokuskan ke format sederhana seperti tulisan sebelumnya. kenapa ? untuk membandingkan peformance. nanti kita lihat bagaimana peformance ketika menggunakan native dan ketika menggunakan framework.

yang pertama yang harus dilakukan untuk menggunakan PHPExcel adalah download Library-nya terlebih dahulu. silakan download. kemudian extract di tempat server apache anda. supaya mudah untuk di include-kan di source code kita nanti.

sebagai contoh taruhlah saya punya database sebagai berikut. yang mana akan saya buat export excel dengan menggunakan PHPExcel.

Contoh database yang kita akan export

Contoh database yang kita akan export

dari database tersebut akan kita export menjadi dokumen excel yang formatnya sama persis seperti format yang kemarin saya buatkan.

FOrmat yang akan dibuat

Format yang akan dibuat

untuk membuat format seperti itu yang perlu dilakukan adalah mengubah block function kode seperti ditulisan saya sebelumnya. menggunakan block function milik PHPExcel. berikut contohnya.

<?php 

/**
 * digunakan untuk generate file excel.
 * sebagai contoh di goblooge.com
 * 
 * @author 		: Nurul Huda
 * @copyright 	: goblooge@gmail.com
 * @license 	: LGPLv2
 * @database 	: - goblooge.keluarga
 * @since		: 16 Sept 2016
 * @version		: 1.0.0
 * 
 * */

//ini adalah require yang dibutuhkan cukup merequire file pertama di PHP Excel. 
//sesuaikan dengan Path Milik anda
	require_once "/var/www/html/teambaru/smis-libs-out/php-excel/PHPExcel.php"; 
/*start - BLOCK PROPERTIES FILE EXCEL*/
	$file = new PHPExcel ();
	$file->getProperties ()->setCreator ( "Goblooge" );
	$file->getProperties ()->setLastModifiedBy ( "Nurul Huda" );
	$file->getProperties ()->setTitle ( "Data Keluarga" );
	$file->getProperties ()->setSubject ( "Inheritance Keluarga" );
	$file->getProperties ()->setDescription ( "Data Inheritance Keluarga" );
	$file->getProperties ()->setKeywords ( "Keluarga Nurul Huda" );
	$file->getProperties ()->setCategory ( "Keluarga" );
/*end - BLOCK PROPERTIES FILE EXCEL*/

/*start - BLOCK SETUP SHEET*/
	$file->createSheet ( NULL,0);
	$file->setActiveSheetIndex ( 0 );
	$sheet = $file->getActiveSheet ( 0 );
	//memberikan title pada sheet
	$sheet->setTitle ( "Database Keluarga" );
/*end - BLOCK SETUP SHEET*/

/*start - BLOCK HEADER*/
	$sheet	->setCellValue ( "A1", "Nama" )
		->setCellValue ( "B1", "Alamat" )
		->setCellValue ( "C1", "Ayah" )
		->setCellValue ( "D1", "Ibu" )
		->setCellValue ( "E1", "Hobi" );
/*end - BLOCK HEADER*/

/* start - BLOCK MEMASUKAN DATABASE*/
	//ganti dengan database anda
	$link = mysqli_connect("localhost", "root", "123456", "goblooge"); 
	$result=mysqli_query($link,"SELECT * FROM keluarga");
	$nomor=1;
	while($row=mysqli_fetch_array($result)){
		$nomor++;
		$sheet	->setCellValue ( "A".$nomor, $row["nama"] )
			->setCellValue ( "B".$nomor, $row["alamat"] )
			->setCellValue ( "C".$nomor, $row["ayah"] )
			->setCellValue ( "D".$nomor, $row["ibu"] )
			->setCellValue ( "E".$nomor, $row["hobi"] );
	}
/* end - BLOCK MEMASUKAN DATABASE*/

/* start - BLOCK MEMBUAT LINK DOWNLOAD*/
	header ( 'Content-Type: application/vnd.ms-excel' );
	//namanya adalah keluarga.xls
	header ( 'Content-Disposition: attachment;filename="Keluarga.xls"' ); 
	header ( 'Cache-Control: max-age=0' );
	$writer = PHPExcel_IOFactory::createWriter ( $file, 'Excel5' );
	$writer->save ( 'php://output' );
/* start - BLOCK MEMBUAT LINK DOWNLOAD*/

?>

 

setelah itu tinggal test saja. sebagai contoh saya cukup mengetikan http://localhost/test_php_excel_sql.php dan sebuah file akan di download. jika dibuka hasilnya akan sama persis dengan yang sebelumnya. tapi tunggu dulu, ini kebetulan data kecil. sekarang coba buat database anda yang super gendhut, misalkan 100 atau 1000 baris, dan coba bandingkan hasilnya dengan menggunakan native. sebagai contoh ketika saya cek peforma dengan native cuma untuk 100 baris data butuh waktu 1 menit sedangkan dengan PHPExcel butuh waktu sekitar 1.4 menit untuk melakukan create file excel (saya test menggunakan developer console chrome). nah kalau datanya sampe ratus ribuan, hm… pasti perbandinganya bukan lagi menit, bisa sampai jam. tentu saja 1 Jam dengan 1.4 Jam itu selisih waktunya cukup lama (0.4 jam bro), dan disini native menang. apakah native menang telak tidak juga, Framework PHPExcel memberikan berbagai macam fitur dan format yang bebas sedang fitur Native yang kemarin kita pelajari cuma begitu doang format yang bisa dihasilkan (tidak ada merge, color dll).

untuk source code dapat di download di Dropbox atau Google Drive, kalau link download KO silakan comment atau hubungi saya. mungkin di lain kesempatan akan saya bahas bagaimana caranya menggunakan Library PHPExcel ini. sampai jumpa di tulisan berikutnya, Okey Donkey. Salam goblooge.

 

Tulisan Berikutnya berjudul Mengatur Layout Download Excel dengan PHPExcel

Comments

total comments