You are on page 1of 7

PANDUAN MUDAH

Cara Mudah Membuat
Laporan Format Excel
dengan PHP
www.bunafit-komputer.com
www.planetKode.Com

Koleksi Buku dari Penerbit GAVAMEDIA, Yogyakarta
Penulis : Bunafit Nugroho, dan Indah Indriyanna

Harga: Rp. 57.500,- Harga: Rp. 65.500,- Harga: Rp. 36.500,- Harga: Rp. 67.500,-

Harga: Rp. 66.500,- Harga: Rp. 49.500,- Harga: Rp. 49.500,- Harga: Rp. 33.500,-
2 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta

Format Laporan Bentuk Data Excel
Format lain dalam menampilkan laporan adalah ke dalam bentuk data Excel.
Mungkin teknik ini sangat Anda perlukan saat data yang hendak dilaporkan berupa
data-data akuntansi atau trax penjualan pada aplikasi penjualan dan pembelian.
Dengan melaporkan data ke dalam format data Excel, maka pengguna dapat langsung
mengelola data yang berhasil dilaporkan. Untuk membuatnya, Kami berikan dua
teknik, berikut caranya:

Dengan Kolom Data Otomatis
Pada contoh program berikut, secara otomatis akan membentuk desain laporan
dengan mengikuti banyaknya data yang hendak ditampilkan dari tabel. Data akan
ditampilkan sesuai dengan kolom tabel yang diseleksi.

Listing Program laporan_excel_1.php

<?php
mysql_connect("localhost","bunafit","nugroho");
mysql_select_db("karyawandb");
$qry_data=mysql_query("SELECT * FROM pribadi ORDER BY nip");

// Mendapatkan jumlah kolom tabel
$count = mysql_num_fields($qry_data);

// Membuat header berupa kolom tabel
for ($i = 0; $i < $count; $i++){
$header .= mysql_field_name($qry_data, $i)."\t";
}

// Perintah otomatis menampilkan data
while($row = mysql_fetch_row($qry_data)){
$baris = '';
foreach($row as $value){
if(!isset($value) || $value == ""){
$value = "\t";
}
else{
$value = str_replace('"', '""', $value);
$value = '"' . $value . '"' . "\t";
}

$baris .= $value;
}
Membuat Laporan Format Excel dengan PHP

$data .= trim($baris)."\n";
}
$data = str_replace("\r", "", $data);

// Konfirmasi saat data yang dilaporkan kosong
if ($data == "") {
$data = "Tidak ada record dalam tabel";
}

// Mendeklarasikan file hasil laporan
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment;
filename=datapribadi.xls");
header("Pragma: no-cache");
header("Expires: 0");

// Menampilkan dengan cara memanggil data excel
echo $header."\n".$data;

?>

Akhir Listing

Apabila dijalankan, maka hasil dari kode program di atas akan tampak seperti gambar
berikut:

Gambar Hasil laporan dalam format excel

Mendesain Sendiri Tampilan Laporan
Cara yang kedua, Kita dapat mendesain sendiri tampilan laporan dengan kode
program. Kita dapat membuat header laporan maupun definisi kolom data pada cell
tabel Excel. Untuk lebih jelasnya, berikut adalah contohnya:
4 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta

Listing Program laporan_excel_2.php

<?php
mysql_connect("localhost","bunafit","nugroho");
mysql_select_db("karyawandb");
$qry_data=mysql_query("SELECT * FROM pribadi ORDER BY nip");

// Fungsi saat data kosong
function xlsBOF() {
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
return;
}

// Fungsi saat data berakhir
function xlsEOF() {
echo pack("ss", 0x0A, 0x00);
return;
}

// Fungsi membuat baris data
function xlsBuatBaris($data, $Col, $Value) {
echo pack("sssss", 0x203, 14, $data, $Col, 0x0);
echo pack("d", $Value);
return;
}

// Fungsi menuliskan data bentuk label
function xlsBuatLabel($data, $Col, $Value ) {
$L = strlen($Value);
echo pack("ssssss", 0x204, 8 + $L, $data, $Col, 0x0, $L);
echo $Value;
return;
}

// Mendeklarasikan file hasil laporan
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=datapribadi.xls ");
header("Content-Transfer-Encoding: binary ");

xlsBOF();
Membuat Laporan Format Excel dengan PHP

// Membuat Header dan nama kolom tabel
xlsBuatLabel(0,0,"DAFTAR DATA PRIBADI");
xlsBuatLabel(2,0,"NIP");
xlsBuatLabel(2,1,"NAMA");
xlsBuatLabel(2,2,"ALAMAT");
xlsBuatLabel(2,3,"KELAMIN");
xlsBuatLabel(2,4,"TGL LAHIR");

$xlsRow = 3;

// Menampilkan data secara berulang
while($data=mysql_fetch_array($qry_data)){
xlsBuatBaris($xlsRow,0,$data['nip']);
xlsBuatLabel($xlsRow,1,$data['nama']);
xlsBuatLabel($xlsRow,2,$data['alamat']);
xlsBuatLabel($xlsRow,3,$data['kelamin']);
xlsBuatLabel($xlsRow,4,$data['tgl_lahir']);

$xlsRow++;
}

xlsEOF();
exit();
?>

Akhir Listing

Penjelasan Program :
Dari semua listing program parser template di atas, Anda perlu mengetahui beberapa
kode beserta fungsinya:
 Kode :
mysql_connect("localhost","bunafit","nugroho");
mysql_select_db("karyawandb");
$qry_data=mysql_query("SELECT * FROM pribadi ORDER BY nip");

Kode di atas digunakan untuk membuka koneksi dan query mengambil semua data
dari tabel pribadi.
 Kode :
function xlsBOF() {
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
return;
}
function xlsEOF() {
echo pack("ss", 0x0A, 0x00);
6 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta

return;
}

Kode di atas digunakan untuk membuat fungsi saat data kosong (BOF) dan saat
data berakhir (EOF).
 Kode :
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=datapribadi.xls ");
header("Content-Transfer-Encoding: binary ");

Kode di atas digunakan untuk membuat file baru hasil laporan dengan jenis excel.
File hasil laporan didefinisikan dengan nama datapribadi.xls.

Dari program di atas, apabila dijalankan Anda akan mendapatkan hasil desain dan
data laporan sebagai berikut:

Gambar Hasil laporan pada Excel

oooOooo
Membuat Laporan Format Excel dengan PHP