Membuat sebuah aplikasi, tentu tidak lepas dari membuat sebuah laporan. Kalau ada Input/ Masukkan, tentu ada Output/ Keluarankan? Kasusnya berbeda lagi apabila output itu hanya sebuah tampilan dialog informasi tanpa harus ada interaksi dengan printer dan lain-lain. Contoh: Website Personal/ Web Pribadi.
Tetapi, untuk sebuah aplikasi katakanlah minimart, inventori, dan lain-lain, mencetak laporan dalam bentuk soft haruslah ada. Cetak laporan dari PHP/HTML secara umum dibuat ke Microsoft Excel atau ke PDF (Portable Document File). Untuk trik kali ini, saya (penulis) akan membagikan sedikit pengetahuan saya tentang bagaimana cara membuat atau mencetak laporan Microsoft Excel dari PHP?
Berikut langkah-langkahnya. :D
Langkah 1:
Jalankan XAMPP dan buat database (sebagai contoh saya buat nama database Raport). Untuk lebih mudahnya silahkan copy dan paste script SQL ini ke dalam SQL Editor favorit Anda :D.
Buka PHP Editor kesukaan Anda, kalau PHPBEJO menggunakan Netbeans dan juga Notepad++, dan lain sebagainya, untuk lebih lengkap bisa dilihat di 4 PHP Programming Tools Terbaik.
Buat koneksi ke database dan menampilkan data tabel tb_login di database raport. Untuk lebih lengkap singkat padat dan jelas, silahkan menuliskan kode berikut ini.
Nama File: laporan.php
Langkah 3: Copy dan paste di text editor kesukaan Anda :D.
Nama File: cetak-laporan.php
Kita juga bisa mengganti filename/ Nama Berkas Excel sesuai kebutuhan kita. Dalam contoh diatas saya menggunakan nama
Jadi, ketika kita membuat export laporan ke Microsoft Excel, tinggal copy dan paste di bagian atas atau di bawah dokumen PHP rekan-rekan. Kenapa saya menyarankan untuk ditulis di atas/bawah ? Agar mudah dicari dan diedit saja. :D.
Sekian tulisan dari saya, ada kurang dan lebihnya mohon maaf, jika ada kritik saran atau pertanyaan silahkan kontak email/ isi komentar.
Tetapi, untuk sebuah aplikasi katakanlah minimart, inventori, dan lain-lain, mencetak laporan dalam bentuk soft haruslah ada. Cetak laporan dari PHP/HTML secara umum dibuat ke Microsoft Excel atau ke PDF (Portable Document File). Untuk trik kali ini, saya (penulis) akan membagikan sedikit pengetahuan saya tentang bagaimana cara membuat atau mencetak laporan Microsoft Excel dari PHP?
Berikut langkah-langkahnya. :D
Langkah 1:
Jalankan XAMPP dan buat database (sebagai contoh saya buat nama database Raport). Untuk lebih mudahnya silahkan copy dan paste script SQL ini ke dalam SQL Editor favorit Anda :D.
-- -------------------------------------------------------- -- -------------------------------------------------------- -- Host: 127.0.0.1 -- Server version: 5.5.27 - MySQL Community Server (GPL) -- Server OS: Win32 -- HeidiSQL Version: 8.1.0.4545 -- -------------------------------------------------------- -- Dumping database structure for raport CREATE DATABASE IF NOT EXISTS `raport` /*!40100 DEFAULT CHARACTER SET latin1 */; USE `raport`; -- Dumping structure for table raport.tb_login CREATE TABLE IF NOT EXISTS `tb_login` ( `no` int(11) NOT NULL AUTO_INCREMENT, `user` varchar(100) NOT NULL, `akses` varchar(15) NOT NULL, `password` varchar(12) NOT NULL, PRIMARY KEY (`no`) ) ENGINE=MyISAM AUTO_INCREMENT=26 DEFAULT CHARSET=latin1; -- Dumping data for table raport.tb_login: 25 rows /*!40000 ALTER TABLE `tb_login` DISABLE KEYS */; INSERT INTO `tb_login` (`no`, `user`, `akses`, `password`) VALUES (1, 'admin', 'admin', 'admin'), (2, 'DWI KURNIANTO', 'GURU', 'guru'), (3, 'DWI KURNIANTO', 'KURIKULUM', 'kurikulum'), (4, 'DWI KURNIANTO', 'WALI KELAS', 'wali'), (5, 'ENDANG KUSMIYATI', 'WALI KELAS', 'VIIA'), (6, 'MENIK ROHAYATI', 'GURU', 'guru'), (7, 'M.SOLEH', 'GURU', 'guru'), (8, 'SUPRAPTONO', 'GURU', 'guru'), (9, 'ENDANG KUSMIYATI', 'GURU', 'guru'), (10, 'TATIK WURIYANTI', 'GURU', 'guru'), (11, 'SRIWARNI', 'GURU', 'guru'), (12, 'SURAMI', 'GURU', 'guru'), (13, 'KUSUMA BASUKI', 'GURU', 'guru'), (14, 'SUPARDI', 'GURU', 'guru'), (15, 'SUMARTI', 'GURU', 'guru'), (16, 'SR BEJO', 'GURU', 'guru'), (17, 'NGESTUTUI RAHAYU', 'GURU', 'guru'), (18, 'SUDIYARMI', 'GURU', 'guru'), (19, 'KRIS HARJITO', 'GURU', 'guru'), (20, 'ENDANG PURWASIH', 'GURU', 'guru'), (21, 'MULYANI', 'GURU', 'guru'), (22, 'UYUNG WIDHI', 'GURU', 'guru'), (23, 'EMILIANA', 'GURU', 'guru'), (24, 'WINDRAT', 'GURU', 'guru'), (25, 'SRI HARTONO', 'GURU', 'guru');Langkah 2:
Buka PHP Editor kesukaan Anda, kalau PHPBEJO menggunakan Netbeans dan juga Notepad++, dan lain sebagainya, untuk lebih lengkap bisa dilihat di 4 PHP Programming Tools Terbaik.
Buat koneksi ke database dan menampilkan data tabel tb_login di database raport. Untuk lebih lengkap singkat padat dan jelas, silahkan menuliskan kode berikut ini.
Nama File: laporan.php
/* -- -------------------------------------------------------- -- -------------------------------------------------------- -- Nama File : laporan.php -- Author : Fitri Ariyanto -- Email : seorang.fitri@gmail.com -- Website : http://usersonly.wordpress.com/ || http://phpbejo.blogspot.com -- Copyright [c] 2013 Fitri Ariyanto -- -------------------------------------------------------- */ mysql_connect("localhost","root","") or die("Gagal melakukan Koneksi!"); mysql_select_db("raport") or die("Gagal memilih Database!"); $query = mysql_query("SELECT * FROM tb_login"); echo '<center> <a href="http://www.blogger.com/cetak-laporan.php">Cetak Laporan</a></center> '; echo ''; $no = 1; while($data=mysql_fetch_array($query)){ echo ' '; } echo '<table align="center" border="1"> <tbody> <tr> <td style="background: #EEE; font-weight: bold;">No.</td> <td style="background: #EEE; font-weight: bold;">User</td> <td style="background: #EEE; font-weight: bold;">Hak Akses</td> <td style="background: #EEE; font-weight: bold;">Password</td> </tr> <tr> <td>' . $no++ . '.</td> <td>' . $data['user'] . '</td> <td>' . $data['akses'] . '</td> <td>' . $data['password'] . '</td> </tr> </tbody></table> ';
Langkah 3: Copy dan paste di text editor kesukaan Anda :D.
Nama File: cetak-laporan.php
/* -- -------------------------------------------------------- -- -------------------------------------------------------- -- Nama File : cetak-laporan.php -- Author : Fitri Ariyanto -- Email : seorang.fitri@gmail.com -- Website : http://usersonly.wordpress.com/ || http://phpbejo.blogspot.com -- Copyright [c] 2013 Fitri Ariyanto -- -------------------------------------------------------- */ header("Content-Type: application/force-download"); header("Cache-Control: no-cache, must-revalidate"); header("Expires: Sat, 26 Jul 2010 05:00:00 GMT"); header("content-disposition: attachment;filename=laporan_pengguna_login".date('dmY').".xls"); mysql_connect("localhost","root","") or die("Gagal melakukan Koneksi!"); mysql_select_db("raport") or die("Gagal memilih Database!"); $query = mysql_query("SELECT * FROM tb_login"); echo ''; $no = 1; while($data=mysql_fetch_array($query)){ echo ' '; } echo '<table align="center" border="1"> <tbody> <tr> <td style="background: #EEE; font-weight: bold;">No.</td> <td style="background: #EEE; font-weight: bold;">User</td> <td style="background: #EEE; font-weight: bold;">Hak Akses</td> <td style="background: #EEE; font-weight: bold;">Password</td> </tr> <tr> <td>' . $no++ . '.</td> <td>' . $data['user'] . '</td> <td>' . $data['akses'] . '</td> <td>' . $data['password'] . '</td> </tr> </tbody></table> ';Pada langkah 3 ini, poin terpenting adalah potongan kode berikut ini:
header("Content-Type: application/force-download"); header("Cache-Control: no-cache, must-revalidate"); header("Expires: Sat, 26 Jul 2010 05:00:00 GMT"); header("content-disposition: attachment;filename=laporan_pengguna_login".date('dmY').".xls");Kode ini adalah kode yang harus ada jika kita ingin mencetak data di php ke ms excel. Tanpa kode tersebut sama saja kita tidak membuat laporan berupa download file excel.
Kita juga bisa mengganti filename/ Nama Berkas Excel sesuai kebutuhan kita. Dalam contoh diatas saya menggunakan nama
laporan_pengguna_login".date('dmY').".xls"Jika ingin mengganti nama filenya, silahkan ganti pada baris berikut:
header("content-disposition: attachment;filename=nama_filenya_sob.xls");PENTING: JANGAN sampai lupa untuk menambahkan tipe file/ ekstensi ( .XLS ) pada akhir kode, apa bila tidak ada, maka file/ berkas tidak dapat dibuka dengan cara seperti biasa (double click).
Jadi, ketika kita membuat export laporan ke Microsoft Excel, tinggal copy dan paste di bagian atas atau di bawah dokumen PHP rekan-rekan. Kenapa saya menyarankan untuk ditulis di atas/bawah ? Agar mudah dicari dan diedit saja. :D.
Sekian tulisan dari saya, ada kurang dan lebihnya mohon maaf, jika ada kritik saran atau pertanyaan silahkan kontak email/ isi komentar.
15 komentar
komentargmn kalo di page nya ada menu dll.
Replytp cuma table aj yg mau di export
itu bisa dikembangkan kok, dan contoh diatas cuma tabel saja yang dicetak / di ekspor ke EXCEL..
Replyuntuk modifikasi ganti saja script kode mulai dibawah
while($data=mysql_fetch_array($query)){...
....
sesuaikan dengan konten tabel pada database..
Ini versi ane gan http://longscripts.blogspot.com/2015/01/membuat-laporan-berbentuk-ms-excel.html
Replymakasih mas, sangat membantu
Replysip gan.. terima kasih kunjungannya..
Replysama-sama mas.. semoga bermanfaat...
Replymas, setelah di download malah corrupt ya? padahal formatnya juga udah saya gonta ganti dari .xlsx ke .xls begitu juga sebaliknya.. mohon pencerahannya mas..
Replygan kalau mau export data mysql ke excel tapi sesuai Nim atau id table yang dipilih ..itu gimana caranya ?
Replybisa jadi salah data atau tabelnya.
Replycoba paste data tabel sql + kode nya disini.. kita bahas bersama
ditambah 'where clause' pada fungsi sql query nya gan..
Replymisal kita mau export nim mhs0001 saja, maka querynya kira-kira seperti ini
select * from tabelsiswa WHERE nim='mhs0001'
gan, kalo ngatur width rownya gimana caranya?
ReplyNgaturnya kalau seperti tutor diatas, lewat echo table nya gan.. jadi sebelum buat cetak.php ada baiknya klo agan buat dlu table-table dengan html, sesuaikan header table kolom marge row/column nya, kalau sudah sesuai dengan tampilan report yang diinginkan, tinggal di konversi ke php-nya
Replymasbro ane tambah ke program ane ada "error Warning: Cannot modify header information - headers already sent by" kenapa ya?
Replycoba lihat kodenya.
Replyatau mas sakim tambahkan kode ini dibawah tag <?php
error_reporting(0);
mkasih sudah berbagi saya pengen coba gan mudah2 berhasil
ReplyIndahnya saling berbagi pengetahuan dan keilmuan. Silahkan singgah
Kunjungi website Kampus saya : Atma Luhur
website saya : Naliyana