Export Data MySQL Ke File Excel Multiple Sheet


Export xls

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

Export MySQL ke ExcelSelanjutnya 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.
Export MySQL ke Excel
Export MySQL ke Excel
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:

<?php
$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:

<?php
$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:

<?php
$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


 Semoga bermanfaat...JAngan lupa Comentnya ya....

1 comment:

  1. boleh minta filenya gak?
    kirim aja ke email saya ya msyafaat03@gmail.com

    ReplyDelete

Buat Yang MAu Download Scrip Jika Mau Gratis Silahkan Minta LInk Download nya Di Form Contak Admin Ya..

Related Posts Plugin for WordPress, Blogger...