Lanjut ke konten

[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 → Tidak Dikategorikan

Tinggalkan sebuah Komentar

Tinggalkan komentar