Anda di halaman 1dari 4

Script PHP untuk Membuat Report Format MS. Excel | Ro... http://blog.rosihanari.net/script-php-untuk-membuat-report-...

Rosihan Ari’s Blog - Indonesian


blogger that cares…

programming | database | mathematics | maple | mathematica | matlab | blogging |


wordpress | my books

Script PHP untuk Membuat Report Format MS.


Excel
September 13th, 2008 | by rosihanari | 2,243 views

Satu lagi tutorial persembahan dari blog.rosihanari.net yang mudah-mudahan


berguna bagi para web programmer. Tutorial ini adalah bagaimana membuat script
PHP untuk menghasilkan file report dalam format MS. Excel.

Apa menariknya report dalam format MS. Excel? dengan report berformat MS. Excel
memungkinkan untuk dilakukan pengolahan lagi pada data report tersebut. Sebagai
contoh, report tentang data nilai mahasiswa dan status kelulusannya pada
matakuliah tertentu. Apabila report yang dihasilkan berupa MS. Excel, maka
memungkinkan untuk pengolahan lebih lanjut terhadap report tersebut
menggunakan perintah-perintah dalam MS. Excel, seperti menghitung jumlah
mahasiswa yang lulus maupun tidak lulus, bahkan dalam bentuk prosentasenya.

Nah… kita akan coba membuat script PHP untuk menghasilkan report dalam format
MS. Excel ini, dengan mengambil studi kasus lagi-lagi tentang nilai matakuliah
mahasiswa. Report yang akan dihasilkan berupa daftar mahasiswa (NIM dan Nama)
yang mengambil matakuliah, nilai yang diperoleh, serta status kelulusannya
(LULUS/TIDAK LULUS). Untuk menentukan kelulusan, misalnya diambil policy jika
nilainya 60 ke atas maka LULUS, jika kurang dari 60 maka TIDAK LULUS. Untuk

1 dari 15 17/02/09 17:05


Script PHP untuk Membuat Report Format MS. Excel | Ro... http://blog.rosihanari.net/script-php-untuk-membuat-report-...

data mentah dari report ini diambil dari database MySQL.

OK… terlebih dahulu kita siapkan tabel dan recordnya.


CREATE TABLE nilaimhs(
nim varchar(10),
namaMhs varchar(30),
nilai int(11),
PRIMARY KEY(nim)
)

INSERT INTO nilaimhs VALUES


('M0197001', 'Faza Fauzan Kh.', 80),
('M0197002', 'Dwi Amalia Fitriani', 75),
('M0197003', 'Rosihan Ari Yuana', 45),
('M0197004', 'Nada Hasanah', 83),
('M0197005', 'Muh. Ahsani Taqwim', 90);

Setelah tabel dan record sudah siap, let’s write a PHP script. Ini dia scriptnya…

1 <?php
2
3 // nama file
4
5 $namaFile = "report.xls";
6
7 // Function penanda awal file (Begin Of File) Excel
8
9 function xlsBOF() {
10 echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
11 return;
12 }
13
14 // Function penanda akhir file (End Of File) Excel
15
16 function xlsEOF() {
17 echo pack("ss", 0x0A, 0x00);
18 return;
19 }
20
21 // Function untuk menulis data (angka) ke cell excel
22
23 function xlsWriteNumber($Row, $Col, $Value) {
24 echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
25 echo pack("d", $Value);
26 return;
27 }
28
29 // Function untuk menulis data (text) ke cell excel
30
31 function xlsWriteLabel($Row, $Col, $Value ) {
32 $L = strlen($Value);
33 echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
34 echo $Value;
35 return;
36 }
37
38 // header file excel

2 dari 15 17/02/09 17:05


Script PHP untuk Membuat Report Format MS. Excel | Ro... http://blog.rosihanari.net/script-php-untuk-membuat-report-...

39
40 header("Pragma: public");
41 header("Expires: 0");
42 header("Cache-Control: must-revalidate, post-check=0,
43 pre-check=0");
44 header("Content-Type: application/force-download");
45 header("Content-Type: application/octet-stream");
46 header("Content-Type: application/download");
47
48 // header untuk nama file
49 header("Content-Disposition: attachment;
50 filename=".$namaFile."");
51
52 header("Content-Transfer-Encoding: binary ");
53
54 // memanggil function penanda awal file excel
55 xlsBOF();
56
57 // ------ membuat kolom pada excel --- //
58
59 // mengisi pada cell A1 (baris ke-0, kolom ke-0)
60 xlsWriteLabel(0,0,"NO");
61
62 // mengisi pada cell A2 (baris ke-0, kolom ke-1)
63 xlsWriteLabel(0,1,"NIM");
64
65 // mengisi pada cell A3 (baris ke-0, kolom ke-2)
66 xlsWriteLabel(0,2,"NAMA MAHASISWA");
67
68 // mengisi pada cell A4 (baris ke-0, kolom ke-3)
69 xlsWriteLabel(0,3,"NILAI");
70
71 // mengisi pada cell A5 (baris ke-0, kolom ke-4)
72 xlsWriteLabel(0,4,"STATUS KELULUSAN");
73
74 // -------- menampilkan data --------- //
75
76 // koneksi ke mysql
77
78 mysql_connect("localhost", "root", "root");
79 mysql_select_db("data");
80
81 // query menampilkan semua data
82
83 $query = "SELECT * FROM nilaimhs";
84 $hasil = mysql_query($query);
85
86 // nilai awal untuk baris cell
87 $noBarisCell = 1;
88
89 // nilai awal untuk nomor urut data
90 $noData = 1;
91
92 while ($data = mysql_fetch_array($hasil))
93 {
94 // menampilkan no. urut data
95 xlsWriteNumber($noBarisCell,0,$noData);
96
97 // menampilkan data nim

3 dari 15 17/02/09 17:05


Script PHP untuk Membuat Report Format MS. Excel | Ro... http://blog.rosihanari.net/script-php-untuk-membuat-report-...

98 xlsWriteLabel($noBarisCell,1,$data['nim']);
99
100 // menampilkan data nama mahasiswa
101 xlsWriteLabel($noBarisCell,2,$data['namaMhs']);
102
103 // menampilkan data nilai
104 xlsWriteNumber($noBarisCell,3,$data['nilai']);
105
106 // menentukan status kelulusan
107 if ($data['nilai'] >= 60) $status = "LULUS";
108 else $status = "TIDAK LULUS";
109
110 // menampilkan status kelulusan
111 xlsWriteLabel($noBarisCell,4,$status);
112
113 // increment untuk no. baris cell dan no. urut data
114 $noBarisCell++;
115 $noData++;
116 }
117
118 // memanggil function penanda akhir file excel
119 xlsEOF();
120 exit();
121
122 ?>

Apabila script di atas dijalankan pada browser, maka browser akan menampilkan
kotak dialog untuk mendownload file MS. Excel sebagai outputnya. Gambar berikut
ini adalah screen shot isi file excel yang telah didownload.

Mudah bukan cara membuatnya?

Silakan isi komentar di bawah ini apabila ada pertanyaan dan diskusi seputar artikel
ini.

Baca juga artikel yang lain berikut ini :

Membuat Kalkulator Berbasis String dengan PHP


Memproses Input Komponen Check Box di PHP

4 dari 15 17/02/09 17:05

Anda mungkin juga menyukai