How To Create Multiple Sheets In Excel Using Php
Sebelumnya, saya pernah memposting artikel tentang export data ke Excel (.xls) di blog ini. Namun, dalam artikel tersebut, file Excel yang dihasilkan berupa single sheet atau single worksheet. Lantas, bagaimana jika kita ingin mengeksport beberapa data ke beberapa sheet sekaligus dalam satu file? Mudah-mudahan artikel yang saya buat ini bisa mencerahkan para pengunjung blog tutorial gratis ini yang ingin tahu caranya 🙂
Untuk keperluan export data excel dengan multiple sheet ini, saya menggunakan class Spreadsheet_WriteExcel yang sudah tersedia. Silakan Anda mengunduh class tersebut di sini.
Namun, sayangnya manual atau petunjuk penggunaan class tersebut sangatlah minim sehingga terpaksa saya membedah class tersebut untuk mendapatkan method atau fasilitas apa saja yang bisa digunakan dalam class ini.
Dalam artikel ini, saya akan mencoba mengupas cara mengeksport data yang ada di MySQL ke dalam file Excel menggunakan class Spreadsheet_WriteExcel. Sebagai contoh misalkan kita memiliki data mahasiswa di MySQL seperti pada gambar berikut ini
Selanjutnya kita ingin mengeksport data mahasiswa tersebut ke file Excel dengan 2 sheet, yaitu sheet pertama untuk menampilkan data mahasiswa laki-laki, dan sheet kedua untuk data mahasiswa perempuan, sebagaimana tampak pada kedua gambar di bawah ini.
Berikut ini adalah script PHP yang nantinya akan menghasilkan file Excel dengan 2 sheet apabila script ini dijalankan di browser.
export.php
<?php require_once('Worksheet.php'); require_once('Workbook.php'); // koneksi ke mysql mysql_connect('dbhost', 'dbuser', 'dbpass'); mysql_select_db('dbname'); // function untuk membuat header file excel function HeaderingExcel($filename) { header("Content-type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=$filename" ); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0,pre-check=0"); header("Pragma: public"); } // membuat header file excel dan nama filenya HeaderingExcel('mhs.xls'); // membuat workbook baru $workbook = new Workbook(""); // membuat worksheet ke-1 (data laki-laki) $worksheet1 =& $workbook->add_worksheet('Laki-laki'); // setting format header tabel data $format =& $workbook->add_format(); $format->set_align('vcenter'); $format->set_align('center'); $format->set_color('white'); $format->set_bold(); $format->set_italic(); $format->set_pattern(); $format->set_fg_color('red'); // membuat header tabel dengan format $worksheet1->set_row(0, 15); $worksheet1->set_column(0, 0, 10); $worksheet1->write_string(0, 0, "NIM", $format); $worksheet1->set_column(0, 1, 30); $worksheet1->write_string(0, 1, "NAMA", $format); $worksheet1->set_column(0, 2, 20); $worksheet1->write_string(0, 2, "TINGGI BADAN (cm)", $format); // menampilkan data mhasiswa laki-laki $query = "SELECT * FROM mhs WHERE jns_kelamin = 'L'"; $hasil = mysql_query($query); $baris = 1; while ($data = mysql_fetch_array($hasil)) { $worksheet1->write_string($baris, 0, $data['nim']); $worksheet1->write_string($baris, 1, $data['nama']); $worksheet1->write_number($baris, 2, $data['tinggi']); $baris++; } // membuat worksheet ke-2 untuk data mhs perempuan $worksheet2 =& $workbook->add_worksheet('Perempuan'); // membuat header tabel $worksheet2->set_row(0, 15); $worksheet2->set_column(0, 0, 10); $worksheet2->write_string(0, 0, "NIM", $format); $worksheet2->set_column(0, 1, 30); $worksheet2->write_string(0, 1, "NAMA", $format); $worksheet2->set_column(0, 2, 20); $worksheet2->write_string(0, 2, "TINGGI BADAN (cm)", $format); // menampilkan data mhasiswa perempuan $query = "SELECT * FROM mhs WHERE jns_kelamin = 'P'"; $hasil = mysql_query($query); $baris = 1; while ($data = mysql_fetch_array($hasil)) { $worksheet2->write_string($baris, 0, $data['nim']); $worksheet2->write_string($baris, 1, $data['nama']); $worksheet2->write_number($baris, 2, $data['tinggi']); $baris++; } $workbook->close(); ?>
Pada script di atas, ada beberapa perintah yang perlu saya jelaskan di sini yaitu:
$worksheet1 =& $workbook->add_worksheet('Laki-laki');
Perintah di atas digunakan untuk membuat sheet atau worksheet dengan nama 'Laki-laki' (worksheet1). Selanjutnya perintah yang terkait dengan $worksheet1 tersebut selalu didahului dengan $worksheet1->… Demikian juga ketika membuat worksheet ke dua (worksheet2).
Kelebihan dari class ini adalah bisa memformat tampilan teks maupun cellnya. Dalam contoh di atas, diberikan perintah sbb:
$format =& $workbook->add_format(); $format->set_align('vcenter'); $format->set_align('center'); $format->set_color('white'); $format->set_bold(); $format->set_italic(); $format->set_pattern(); $format->set_fg_color('red');
dengan perintah di atas, kita akan membuat format teks dengan properti: bold, italic, background warna merah, vertical centered, horizontal centerd, dan warna fontnya putih. Format tersebut nantinya akan diberikan pada cell yang merupakan header dari tabel data mahasiswanya. Sebagai contoh, misalkan kita ingin memformat pada cell header tabel 'NAMA' dengan properti di atas pada sheet 2, maka perintahnya:
$worksheet2->write_string(0, 1, "NAMA", $format);
di mana parameter 0 dan 1 merupakan koordinat cell nya.
Adapun method set_row(x, y)
digunakan untuk mengatur lebar baris pada kolom ke-x, dengan lebar y pixel. Sedangkan method set_column(x, y, z)
untuk mengatur lebar kolom sebesar z pixel pada kolom ke-y. Untuk menuliskan data ke dalam cell, bisa menggunakan method write_string()
maupun write_number()
. Beda antara keduanya adalah jika method write_string()
akan dihasilkan string pada cell tersebut, sedangkan write_number()
data yang ditulis dalam cell berupa bilangan.
Beli Buku Pemrograman
Article by Request
Anda belum memahami konsep pemrograman PHP Native, Python, Java, atau SQL? atau Anda belum punya ide penyelesaian dari studi kasus yang dihadapi sampai saat ini.
Silakan manfaatkan layanan Article by Request di blog ini.
Bagikan artikel ini jika bermanfaat !
How To Create Multiple Sheets In Excel Using Php
Source: https://blog.rosihanari.net/script-php-export-data-mysql-ke-file-excel-multiple-sheet/
Posted by: millervoymaiden.blogspot.com
0 Response to "How To Create Multiple Sheets In Excel Using Php"
Post a Comment