Membuat Workbook dan Worksheet Excel Pada PHP

Membuat Workbook dan Worksheet Excel Pada PHPPada kesempatan kali ini, saya akan membuat tutorial bagaimana mengolah dokumen Excel menggunakan PHP. Dikarenakan materi yang disampaikan sangat banyak, maka saya rencanakan tutorial ini akan disajikan secara bertahap.





Untuk keperluan pengolahan dokumen Excel dengan PHP ini, saya akan menggunakan class PHPExcel yang cukup handal. PHPExcel adalah kumpulan class PHP yang dapat digunakan untuk mengenerate dan mengimport dokumen spreadsheet seperti Excel 97-2003 format (.xls), Excel 2007 format (.xlsx), CSV, LibreOffice/Open Office Calc (.ods) dan GNUmeric. Project PHPExcel ini dibuat dengan menggunakan standard Microsoft OpenXML dan PHP. PHPClass ini bersifat free dan open source. Sobat dapat mengunduh sourcenya di http://phpexcel.codeplex.com. Ketika artikel ini ditulis, versi terbaru dari PHPExcel adalah PHPExcel 1.8.0
Setelah sobat mengunduh PHPExcel, dan mengekstrak filenya akan diperoleh 3 folder yaitu: Classes, Documentation dan Tests. Folder Classes ini berisi file class-class yang akan digunakan untuk mengolah spreadsheet, folder Documentation berisi file-file dokumentasi dari PHPExcel, dan folder Tests berisi contoh-contoh script PHP yang menggunakan PHPExcel.
Adapun cara instalasi PHPExcel nya cukup mudah, tinggal pindahkan folder hasil ekstrak ke direktori web sobat (seperti htdocs, atau www), khususnya folder ‘Class’. Untuk 2 folder yang lain boleh tidak dipindahkan ke direktori web. Untuk bisa menjalankan PHPExcel, versi PHP yang sobat gunakan minimal PHP 5.2.0.

tutorial ini menjelaskan bagaimana mengenerate file Excel atau istilahnya Workbook dengan PHPExcel ini. Di dalam sebuah workbook, bisa kita buat beberapa worksheet. Ini semua akan saya bahas di artikel ini.
Berikut ini contoh script untuk mengenerate file Excel dengan format Excel 97-2003 (.xls) dan membuat 2 buah sheet di dalamnya
<?php
require_once 'Classes/PHPExcel.php';

// membuat obyek dari class PHPExcel
$objPHPExcel = new PHPExcel();
// memberi nama sheet pertama dengan nama 'Sheet 1'
$objPHPExcel->getSheet(0)->setTitle('Sheet 1');

// Membuat sheet kedua dengan nama 'Sheet 2'
$myWorkSheet = new PHPExcel_Worksheet($objPHPExcel, 'Sheet 2');
$objPHPExcel->addSheet($myWorkSheet, 1);

// mengeset sheet 2 yang aktif
$objPHPExcel->setActiveSheetIndex(1);

// output file dengan nama file 'contoh.xls'
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="contoh.xls"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
?>

Perhatikan script di atas, untuk membuat sheet baru dalam workbook digunakan perintah ini

$myWorkSheet = new PHPExcel_Worksheet($objPHPExcel, 'nama sheet');
$objPHPExcel->addSheet($myWorkSheet, n);

dengan parameter ‘n’ adalah nomor urut index sheet, yang dimulai dari 0, 1, 2, …
PHPExcel secara otomatis akan mengenerate sheet ke-1, sehingga untuk membuat sheet pertama tidak perlu kita tuliskan perintah sbb

$myWorkSheet = new PHPExcel_Worksheet($objPHPExcel, 'Sheet 1');
$objPHPExcel->addSheet($myWorkSheet, 0);

akan tetapi cukup merename saja nama worksheet yang otomatis terbentuk dengan perintah

$objPHPExcel->getSheet(0)->setTitle('Sheet 1');

NB: parameter 0 pada getSheet(0) menunjukkan bahwa nama sheet yang akan diubah adalah sheet pertama atau sheet dengan nomor index ke-0.
Adapun perintah

$objPHPExcel->setActiveSheetIndex(1);

digunakan untuk mengeset worksheet aktif adalah sheet ke-2 atau worksheet yang berindex-1. Worksheet yang aktif adalah worksheet yang akan langsung muncul/tampil ketika file excel hasil generate dibuka.
Bagaimana dengan perintah

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

Perintah di atas gunakan untuk mengatur jenis format file yang akan digenerate. Parameter ‘Excel5′ menunjukkan bahwa file yang akan digenerate berformat Excel 97-2003 (.xls). Anda dapat mengubah jenis format file yang lain sbb:
‘Excel2007′ untuk format Excel 2007 (.xlsx), ‘OOCalc’ untuk format Open Office Calc (.ods), ‘CSV’ untuk format CSV (.csv).


EmoticonEmoticon