Cara mudah Membuat laporan Exel dengan PHP
Setelah pada artikel sebulmnya saya sudah membahas Cara Mudah Export Data dari Mysql ke Ms. Exel dengan PHP disini, Kali ini kita akan Membuat Laporan / report Exel Dengan PHP dengan Tehnik Yang berbeda .
Disini kita akan Membuat Download Excel Menggunakan Native PHP dengan Database MySQL , Perbedaan pada artikel sebelumnya kita hanya menambahkan fungsi header pada data yang ingin kita export ke ms. exel , selebihnya kita hanya menampilkan data seperti biasa, baik itu data HTML biasa maupun data yang kita ambil dari database.
Disini kita akan Membuat Export Data / Laporan dari Database langsung ke Ms. Exel , sehingga data langsung dari database masuk ke excel. sebenarnya konsepnya mudah , yang harus dilakukan cukup dengan membuat data di bagian database menjadi sebuah list array yang nantinya array tersebut akan dibaca dan kemudian diubah menjadi excel dengan menggunakan fungsi createExcel.
Membuat Laporan Exel dengan PHP
Disini saya terdapat sebuah data didatabase seperti ini :
sehingga yang sebenarnya perlu dilakukan adalah memasukan satu-persatu data hasil dari fetch database ke sebuah array. sebagai contoh berikut :
/*BLOCK FUNCTION SQL*/
$keluarga=array();
$link = mysqli_connect("localhost", "root", "123456", "goblooge");
$result=mysqli_query($link,"SELECT * FROM keluarga");
while($row=mysqli_fetch_array($result)){
$keluarga[]=array(
"Nama"=>$row['nama'],
"Alamat"=>$row['alamat'],
"Ayah"=>$row['ayah'],
"Ibu"=>$row['ibu'],
"Hobi"=>$row['hobi']
);
}
/*END BLOCK FUNCTION SQL*/
nah tinggal di coba dan fuala hasilnya pun akan terlihat. sebagai gambar berikut.
Nah .. berikut ini script Lengkap nya :
<?php
/*BLOCK FUNCTION EXCELL*/
function cleanDataExcel(&$str){
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if($str == 't') $str = 'TRUE';
if($str == 'f') $str = 'FALSE';
if(preg_match("/^0/", $str) || preg_match("/^\+?\d{8,}$/", $str) || preg_match("/^\d{4}.\d{1,2}.\d{1,2}/", $str)) {
$str = "'$str";
}
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}
function createExcel($filename,$array){
// filename for download
$filename = $filename.".xls";
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/vnd.ms-excel");
$flag = false;
foreach($array as $row) {
if(!$flag) {
// display field/column names as first row
echo implode("\t", array_keys($row)) . "\r\n";
$flag = true;
}
array_walk($row, 'cleanDataExcel');
echo implode("\t", array_values($row)) . "\r\n";
}
return;
}
/*END OF - BLOCK FUNCTION EXCELL*/
/*BLOCK FUNCTION SQL*/
$keluarga=array();
$link = mysqli_connect("localhost", "root", "123456", "goblooge");
$result=mysqli_query($link,"SELECT * FROM keluarga");
while($row=mysqli_fetch_array($result)){
$keluarga[]=array(
"Nama"=>$row['nama'],
"Alamat"=>$row['alamat'],
"Ayah"=>$row['ayah'],
"Ibu"=>$row['ibu'],
"Hobi"=>$row['hobi']
);
}
/*END BLOCK FUNCTION SQL*/
/*TRANSFER KE SYSTEM*/
createExcel("keluarga.xls",$keluarga);
?>
Nah.. silahkan download disini database dan source code langkapnya.
UPDATE :
Untuk Cara Yang lebih mudah lagi anda bisa melihat pada artikel Cara Export Data Mysql ke Microsoft Exel.
Contohnya kita hanya menggunakan code :
<?php
$filename ="Nama_file.xls";
header('Content-type: application/ms-excel');
header('Content-Disposition: attachment; filename='.$filename);
?>