You are on page 1of 7

Skrip PHP untuk Export Database MySQL ke File

Microsotf Excel
Didalam mengolah database MySQL, sering sekali kita berhubungan dengan bagaimana cara
menampilkan data sesuai dengan permintaan. Biasanya database MySQL ini akan kita
tampilkan didalam halaman website kita. Namun ada kalanya, database MySQL yang sudah
kita olah sedemikian rupa dengan PHP ingin ditampilakn dalam bentuk lain, misalnya dalam
format PDF, file Microsoft Word, Excel dan lain sebagainya. Salah satau yang paling sering
diminta adalah membuat tampilan data dalam file Microsoft Excel.
Sering sekali database yang diolah di dalam PHP diminta oleh user untuk di tampilkan dalam
bentuk File Microsotf Excel. Dan ini biasanya adalah data yang lumayan banyak, sehingga
kalau kita melakukan Copy + Paste datanya secara manual dari MySQL ke Ms Excel
tentunya akan report dan lama. Disini kita membutuhkan aplikasi khusus yang berguna untuk
melakukan Export database MySQL kedalam file Ms Excel. Untungnya, sudah banyak
Library PHP yang bisa kita gunakan untuk melakukan tugas ini. Salah satunya adalah Library
PHPExcel. Contoh aplikasi buatan saya yang sudah menerapkan trik ini adalah LunkSMS
Gateway, LunkSMS Broadcast, dan kebanyakan List Project buatan saya.
Selain itu, trik ini juga saya terapkan di dalam buku pertama saya yaitu Membangun SMS
Gateway Berbasis Web Menggunakan CodeIgniter. Dan berita gembiranya lagi, dibuku
kedua saya yang akan membahas Aplikasi Perpustakaan Berbasis Web dengan CodeIgniter,
trik ini juga akan saya gunakan.
Library PHPExcel ini jugalah yang akan kita gunakan pada tutorial ini untuk melakukan
export database MySQL kedalam file Ms Excel. Untuk memulai tutorial ini, dimisalkan kita
memiliki sebuah database “perpustakaan” yang memiliki table “anggota”. Tabel “anggota”
ini kira-kira akan terlihat seperti kode dibawah ini :
1.
2. CREATE TABLE IF NOT EXISTS `anggota` (
3. `anggota_id` int(10) NOT NULL AUTO_INCREMENT,
4. `nama_anggota` varchar(30) NOT NULL,
5. `jenis_kelamin` varchar(10) NOT NULL,
6. `alamat_anggota` text NOT NULL,
7. `no_telepon` varchar(15) NOT NULL,
8. PRIMARY KEY (`anggota_id`)
9. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4
;

->setTitle("Office 2007 XLSX Test Document") 17. 9. 13. `nama_anggota`. Misalkan kita ingin mengekport database diatas kedalam bentuk file Microsoft Excel. (1. 14. 7. $query = "SELECT * FROM `anggota`". 'Daud Edison Tarigan'. error_reporting(E_ALL). kita dapat kita lakukan dengan kode dibawah ini : 1. // Set properties 14. 12. 13. mysql_connect("localhost". 11.php'. 'Jl Harmonika No 61 Medan'. 2. (2. $hasil = mysql_query($query). 'Kuta Pengkih'. 8. <?php 3. 4. 'Andi Tarigan'. "root". INSERT INTO `anggota` (`anggota_id`. 11. `no_telepon`) VALUES 12. 10. '0878680044'). "") or die(mysql_error()).10. require_once 'Classes/PHPExcel. ->setSubject("Office 2007 XLSX Test Document") . `alamat_anggota`. $objPHPExcel = new PHPExcel(). ->setLastModifiedBy("Daud Edison Tarigan") 16. 'Pria'. mysql_select_db("perpustakaan") or die(mysql_error()). 5. // Create new PHPExcel object 6. `jenis_kelamin`. 'Pria'. '0878680044'). $objPHPExcel->getProperties()->setCreator("Daud Edison Tarigan") 15.

// Add some data 23. ->setKeywords("office 2007 openxml php") 20. 'Nama Anggota!') 26. ->setCellValue('D1'. ->setCellValue('C1'. $objPHPExcel->setActiveSheetIndex(0) 24. generated using PHP classes. 31. 30. ->setCellValue('A1'. $objPHPExcel->setActiveSheetIndex(0) 35. $no = 0. $row['jenis_kelamin']) 38. } 42. 32. $row['nama_anggota']) 37. $no = $no +1. . 34. 29. 'Jenis Kelamin') 27. $row['alamat_anggota']) 39.18. $no) 36. 41. while($row=mysql_fetch_array($hasil)){ 33. ->setCategory("Test result file"). ->setDescription("Test document for Office 2007 XLSX. 'No') 25. ->setCellValue("A$rowNya".") 19. 'Nomor Telepon'). 40. 'Alamat Anggota') 28. 21. ->setCellValue('E1'. ->setCellValue('B1'. ->setCellValue("C$rowNya". ->setCellValue("B$rowNya". $row['no_telepon']). ->setCellValue("D$rowNya". ->setCellValue("E$rowNya". 22. $rowNya = 2. $rowNya = $rowNya + 1.

sehingga bisa digunakan di dalam aplikasi. 51. ?> 58. header('Content-Type: application/vnd. 6. 3.xls"'). exit. 2. 56. Perhatikan kode ini : 1.ms-excel'). 53. $objPHPExcel->setActiveSheetIndex(0). 55. maka secara otomatis database ini akan di import kedalam file Microsoft Excel dengan nama “data_anggota. require_once 'Classes/PHPExcel. // Redirect output to a client’s web browser (Excel5) 50. 57. // Rename sheet 44. so Excel opens this as the first sheet 47. 49. Kode dibawah ini adalah kode untuk memanggil Library PHPExcel. error_reporting(E_ALL). 46. 4. 45. Selanjutnya jika file PHP ini anda jalankan. header('Cache-Control: max-age=0'). $objPHPExcel->getActiveSheet()->setTitle('Simple'). $objPHPExcel = new PHPExcel().filename="database_anggota. $objWriter->save('php://output'). $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel. header('Content-Disposition: attachment. 48.xls”. 52. // Set active sheet index to the first sheet. 54. Mari saya jelaskan bagianbagian kode diatas. 'Excel5'). .43.php'. // Create new PHPExcel object 5.

") 7. $hasil = mysql_query($query). Kode inilah kode paling penting dari aplikasi ini. ->setSubject("Office 2007 XLSX Test Document") 6. Perhatikan kode dibawah ini : 1. $objPHPExcel->getProperties()->setCreator("Daud Edison Tarigan") 3. 4. "root". Nantinya untuk mengerjakan aplikasi serupa yang lebih kompleks anda akan banyak bermain di kode dibawah ini : 1. $query = "SELECT * FROM `anggota`". ->setDescription("Test document for Office 2007 XLSX. 6. Selanjutnya adalah kode untuk membentuk Properti dari File Microsoft Excel yang akan kita bentuk. 2. generated using PHP classes. 2. 5. "") or die(mysql_error()). ->setLastModifiedBy("Daud Edison Tarigan") 4. Propertis ini tidak akan kelihatan secara ‘nyata’ didalam file kita nantinya. mysql_connect("localhost". // Add some data . ->setTitle("Office 2007 XLSX Test Document") 5.Selanjutnya adalah kode untuk melakukan koneksi kedalam database “perpustakaan” . mysql_select_db("perpustakaan") or die(mysql_error()). 3. 2. 9. ->setKeywords("office 2007 openxml php") 8. ->setCategory("Test result file"). Perhatikan kode dibawah ini : 1. Kode berikutnya adalah kode utama yang akan mengolah database menjadi kolom dan baris didalam file Microsoft excel.

Perhatikan kode dibawah ini : 1. } 22. 9. 10. 'Nama Anggota!') 6. $objPHPExcel->setActiveSheetIndex(0) 4. while($row=mysql_fetch_array($hasil)){ 13. ->setCellValue('E1'. $row['no_telepon']). selanjutnya kita akan menempatkannya kedalam “sheet” File Ms Excel. “sheet” nya kita beri nama “Simple” dan kita buat sebagai sheet awal. Dalam hal ini. 'Alamat Anggota') 8. $rowNya = $rowNya + 1. ->setCellValue('B1'. $no = 0. // Rename sheet . 'No') 5. 12. 'Jenis Kelamin') 7. Sheet ini adalah lembaran kerja dari File Microsoft Excel.3. ->setCellValue("A$rowNya". 20. $row['nama_anggota']) 17. 'Nomor Telepon'). Setelah data-data MySQL disusun kedalam kolom dan baris Microsoft Excel. ->setCellValue('C1'. $no) 16. 2. ->setCellValue("E$rowNya". $no = $no +1. 21. ->setCellValue("D$rowNya". 14. ->setCellValue("C$rowNya". $row['jenis_kelamin']) 18. $row['alamat_anggota']) 19. ->setCellValue("B$rowNya". $rowNya = 2. ->setCellValue('A1'. $objPHPExcel->setActiveSheetIndex(0) 15. 11. ->setCellValue('D1'.

$objPHPExcel->getActiveSheet()->setTitle('Simple'). 4. 4. selanjutnya tugas kita adalah mencetak data-data tersebut menjadi file Microsotf Excel dengan nama tertentu. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel. Mudah-mudahan artikel ini membantu teman-teman semuanya.3. 5. // Set active sheet index to the first sheet.xls”. 6. 7.xls"').ms-excel'). header('Content-Type: application/vnd. Perhatikan kode dibawah ini : 1. 2. sampai disini saya kira teman-teman sudah bisa mengerti konsep dari pembuatan aplikasi Export Database MySQL ini kedalam file Ms Excel. 10. 5. . 7. dalam hal ini kita buat namanya menjadi “database_anggota. header('Cache-Control: max-age=0'). header('Content-Disposition: attachment. $objPHPExcel->setActiveSheetIndex(0). Setelah kode utama yang mengolah database menjadi baris dan kolom File Microsoft Excel. 'Excel5'). exit.filename="database_anggota. 8. Nah. so Excel opens this as the first sheet 6. // Redirect output to a client’s web browser (Excel5) 3. 9. $objWriter->save('php://output').