Anda di halaman 1dari 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