Belajar PHP‎ > ‎Tips PHP‎ > ‎

Menghasilkan File Excel dengan PHP

posted Dec 3, 2011, 7:05 AM by Editor KursusInternet   [ updated Dec 3, 2011, 8:06 PM ]
Selain tampilan berbentuk halaman web, banyak user yang menginginkan laporan dalam bentuk file Excel sehingga mudah diolah dan dianalisa lebih lanjut.  Dengan demikian, tuntutan untuk programmer PHP dalam menghasilkan format Excel tentunya semakin tidak dapat dihindarkan. 

Di lain pihak, tidak terlalu banyak class maupun extension PHP yang mengakomodir hal tersebut. Walaupun ada, beberapa telah menjadi project yang tidak dipelihara (maintain) dengan baik. 

Pada kesempatan kali ini, penulis memilih project PHPExcel yang cukup aktif dikembangkan sebagai topik untuk solusi output file berformat Excel dari PHP.

Kebutuhan / Requirement Sistem

PHPExcel merupakan kumpulan class PHP yang dapat digunakan apabila kebutuhan (requirement) berikut telah terpenuhi :
  • Versi PHP yang digunakan adalah 5.2 ke atas.
  • Extension berikut telah diaktifkan :
    • php_zip
    • php_xml
    • php_gd2
Screenshot berikut ini menampilkan informasi dari phpinfo() bahwa kebutuhan di atas telah terpenuhi.


Instalasi dan Konfigurasi PHPExcel

  1. Kunjungi halaman website PHPExcel : http://phpexcel.codeplex.com.
  2. Klik tombol "Download" untuk mengambil versi stabil terakhir. Pada saat penulisan dibuat, versi terakhir adalah 1.7.6.


  3. Ekstrak folder tersebut dan kita akan dapatkan file berikut pada root folder.


  4. PIndahkan folder Classes ke folder aplikasi web yang Anda inginkan.
  5. Selesai.

Contoh Penggunaan

generate_excel.php

<?php error_reporting(E_ALL); include_once 'phpexcel1.7.6/Classes/PHPExcel.php'; $objXLS = new PHPExcel(); $objSheet = $objXLS->setActiveSheetIndex(0); $objSheet->setCellValue('A1', 'No.'); $objSheet->setCellValue('B1', 'Nama Kategori'); $objSheet->setCellValue('A2', 1); $objSheet->setCellValue('B2', 'Buah-buahan'); $objSheet->setCellValue('A3', 2); $objSheet->setCellValue('B3', 'Sayur-sayuran'); $objXLS->getActiveSheet()->getColumnDimension("A")->setAutoSize(true); $objXLS->getActiveSheet()->getColumnDimension("B")->setAutoSize(true); $objXLS->getActiveSheet()->setTitle('Kategori Produk'); $objXLS->setActiveSheetIndex(0); $objWriter = PHPExcel_IOFactory::createWriter($objXLS, 'Excel5'); $objWriter->save(__DIR__ . "/hasil.xls"); ?>


Video Demo Penggunaan


Sumber Referensi

Comments