Skip to content

[Contoh 1] Membuat Laporan Export Data dari MySQL ke Excel dengan PHP (no-pear)

April 9, 2012

http://bimosaurus.com/2012/04/09/contoh-1-membuat-laporan-export-data-dari-mysql-ke-excel-dengan-php-no-pear/

 

Salah satu yang diperlukan dalam sistem informasi adalah pelaporan dan pengemasan data. Data yang berasal dari database, biasanya perlu dikonversi ke lain bentuk agar dapat diterima sebagai standard laporan pihak lain dalam bentuk standard dokumen. Salah satu bentuk standard dokumen adalah Excel. Sebelum ini juga pernah dipaparkan tentang pelaporan data dalam bentuk PDF (Portable Document Format). Excel atau worksheet dipercaya sebagai standard pelaporan, bahkan hampir semua program perkantoran (office) telah melakukan pembuatan dokumen yang standard dengan Workbook/Worksheet ini. Permasalahan para web developer salah satunya adalah melakukan exporting ke dalam format excel.

Dalam PHP, sebenarnya telah terdapat library khusus untuk melakukan proses data yang berkaitan dengan excel, yaitu dengan menggunakan fasilitas PEAR. Proses installasi PEAR sendiri kadang juga melalui masalah yang tidak kalah sulitnya dengan pembuatan script export SQL to XLS sendiri. Oleh karena itu muncul beberapa cara untuk melakukan export data ke dalam bentuk excel.

Langkah paling mudah untuk menjadikan sebuah data ke dalam bentuk excel adalah dengan cara menyusun data sedemikian rupa hingga terdapat tabel dan baris, kemudian mengarahkan agar data tergenerate sebagai excel. Beberapa hal yang perlu diketahui adalah bahwa pindah baris dapat menggunakan perintah “\n”, dan tabel dapat langsung terbentuk ke dalam cell.

Contoh 1.

$title = "Contoh Excel Export";
 
$content = "
 
<table>
 
<tr><td>nama</td><td>bimosaurus</td></tr><tr><td>alamat</td><td>wonosobo</td></tr><tr><td>nohp</td><td>080808080</td></tr>
 
</table>
 
";
 
$content = $title  . "\n"  .  $content;
 
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=excel.xls");
header("Pragma: no-cache");
header("Expires: 0");
print $content;

 

Contoh hasilnya bisa diambil di sini

 

Contoh 2.

Contoh ini melibatkan data MySQL. Misal tabel yang ada adalah seperti berikut :

nip nama honor status_ambil
10001 Susanto Rp. 1000000 Belum
10002 Susanti Rp. 1000000 Sudah
10003 Marwoto Rp. 2000000 Sudah
10004 Gunadi Rp. 1500000 Belum
10005 Nur Eko Rp. 1000000 Belum
 
 
if( mysql_connect("localhost","user","password") ){
mysql_select_db("kepegawaian");
}
 
 
$title = "Exporting Sederhana dari SQL ke XLS";
$content_header = "<table><tr><th>NIP</th><th>Nama</th><th>Jumlah Honor</th><th>Status Terima</th></tr>";
$content_footer = "</table>";
$content_dalam = "";
 
 
$sql = "SELECT * FROM `pegawai`";
$q   = mysql_query( $sql );
while( $r=mysql_fetch_array( $q ) ){
 
$data = "<tr><td>".$r['nip']."</td><td>".$r['nama']."</td><td>".$r['honor']."</td><td>".$r['status_ambil']."</td></tr>";
$content_dalam = $content_dalam ."\n". $data;
}
 
$content_sheet = $title . "\n" . $content_header . "\n" . $content_dalam . "\n" . $content_footer;
 
 
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=excel.xls");
header("Pragma: no-cache");
header("Expires: 0");
print $content_sheet;

 

Hasil dari contoh ini dapat diambil di sini

 

Nah, untuk sampai sini cukup mudah bukan? Hanya saja, format yang dihasilkan oleh model exporting ini tidak standard. Adakalanya ketika terdownload justru akan muncul script tabelnya. Untuk kondisi yang cukup standard, tunggu posting berikutnya..

 

Semoga berguna

From → Tak Berkategori

Tinggalkan sebuah Komentar

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: