Kamis, 09 Februari 2012
2 komentar

Export PHP ke Excel / Report PHP



Setelah kita membahas tentang koneksi,insert,delete,update data dengan PHP. Sekarang kita akan mencoba untuk membahas bagaimana kita mengeksport data dari PHP ke format Excel. Kita tetap memakai database yang telah kita buat sebelumnya, yaitu databse 'ritel' dengan tabel 'masterproduk', untuk halaman index.php msih sama dengan sebelumnya hanya kita akan menambahkan link ke file xls.php seperti terlihat pada gambar di bawah ini :



Untuk isi dari index.php adalah sebagai berikut :

<head>
<title>Akses Database</title>
</head>
<body>
<?
require_once("KonDb.php");
$query="select * from MasterProduk order by PLU";
$eksekusi=mysql_query($query);
?>
<table border="1" align="center">
<tr align="center">
<td colspan="6">TABEL MASTER PRODUK</td>
</tr>
<tr align="center">
<td>PLU</td>
<td>NAMA</td>
<td>DESC</td>
<td>BARCODE</td>
<td>UBAH DATA</td>
<td>HAPUS DATA</td>
</tr>
<?php
$no=1;
while( $baris=mysql_fetch_array($eksekusi)){
echo "<tr>
<td>$baris[PLU]</td>
<td>$baris[NAMA]</td>
<td>$baris[DESKRIPSI]</td>
<td>$baris[BARCODE]</td>
<td><a href=edit.php?id=$baris[ID]><font color=#004284>Edit</font></a></td>
<td><a href=hapus.php?id=$baris[ID]><font color=#004284>Delete</font></a></td>
</tr>";
$no++;
}
?>
</table>
<center>
<a href="tambah.php">Tambah Data</a> | <a href="xls.php">Export to excel</a>
</center>
</body>
</html>






Langkah berikutnya adalah membuat file xls.php, file ini berfungsi untuk menampung dan menjalankan fungsi untuk mengekspor data dari php ke excel.
adapun isi scriptnya adalah :

<?php
// nama file excel
$namaFile = "laporan.xls";
function xlsBOF() {
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
return;
}
function xlsEOF() {
echo pack("ss", 0x0A, 0x00);
return;
}
function xlsWriteNumber($Row, $Col, $Value) {
echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
echo pack("d", $Value);
return;
}
function xlsWriteLabel($Row, $Col, $Value ) {
$L = strlen($Value);
echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
echo $Value;
return;
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0,
pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment;
filename=".$namaFile."");
header("Content-Transfer-Encoding: binary ");
xlsBOF();
// Buat Kolom pada Worksheet Excel,sesuaikan dengan data yang anda tampilkan
xlsWriteLabel(0,0,"PLU");
xlsWriteLabel(0,1,"NAMA");
xlsWriteLabel(0,2,"DESC");
xlsWriteLabel(0,3,"BARCODE");
// koneksi mysql
require_once("KonDb.php");
// query untuk menampilkan data dari Mysql ke Excel
$query = "SELECT * FROM masterproduk";
$hasil = mysql_query($query);
$noBarisCell = 1;
$noData = 1;
while ($data = mysql_fetch_array($hasil))
{
// menampilkan data PLU
xlsWriteNumber($noBarisCell,0,$data['PLU']);
// menampilkan data NAMA
xlsWriteLabel($noBarisCell,1,$data['NAMA']);
// menampilkan data DESKRIPSI
xlsWriteLabel($noBarisCell,2,$data['DESKRIPSI']);
// menampilkan data BARCODE
xlsWriteNumber($noBarisCell,3,$data['BARCODE']);
$noBarisCell++;
$noData++;
}
xlsEOF();
exit();
?>



Setelah file xls.php dibuat, sekarang coba kita jalankan programnya, maka akan hasilnya seperti gambar dibawah ini :


 
Toggle Footer
Top