Selasa, 03 Juli 2012

PHP : Convert Html to Excel


PHP adalah sebuah server side scripting yang populer. 

Banyak orang menggunakan PHP karena relatif cepat untuk memperlajarinya.



Kepopuleran PHP mungkin karena dalam menggunakan PHP tidak perlu bayar license alias gratis.

HyperText Markup Language (HTML) adalah sebuah bahasa markup standar yang digunakan untuk membuat sebuah halaman web.

Microsoft Excel atau Microsoft Office Excel adalah sebuah aplikasi populer spreadsheet yang dibuat dan didistribusikan oleh Microsoft Corporation untuk sistem operasi Microsoft Windows dan Mac OS.

Dokumen Microsoft Excel pada sebuah aplikasi biasanya menjadi sebuah standar export data favorit yang diinginkan oleh pengguna aplikasi.

Pada posting ini akan dijelaskan cara sederhana membuat export data ke Microsoft Excel dengan menggunakan php + html. 

1. Sebagai contoh buatlah sebuah file bernama nilai.php, pada file tersebut berisikan daftar nilai mahasiswa.
<?php
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=nilai.xls");
?>

<table>
 <tr>
  <th>NO</th>
  <th>NPM</th>
  <th>NAMA</th>
  <th>KEHADIRAN</th>
  <th>UTS</th>
  <th>UAS</th>
  <th>NILAI MUTU</th>
 </tr>
 <tr>
  <td align="center">1</td>
  <td>TI1091001</td>
  <td>DENDIE SANJAYA</td>
  <td align="center">100%</td>
  <td align="center">90</td>
  <td align="center">95</td>
  <td align="center">A</td>
 </tr>
 <tr>
  <td align="center">2</td>
  <td>TI1091002</td>
  <td>AINUR ROFIQ</td>
  <td align="center">85%</td>
  <td align="center">86</td>
  <td align="center">90</td>
  <td align="center">A</td>
 </tr>
 <tr>
  <td align="center">3</td>
  <td>TI1091003</td>
  <td>RAHMAT</td>
  <td align="center">70%</td>
  <td align="center">70</td>
  <td align="center">75</td>
  <td align="center">B</td>
 </tr>
</table> 

<?php
exit()
?>
Bagian yang terpenting pada script diatas adalah sebagai berikut.
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=nilai.xls");
Kode program diatas adalah bagian utama yang memberikan informasi pada komputer client bawah file yang didowload adalah file Microsoft Excel. 

Secara konsep PHP tidak melakukan konversi HTML menjadi Excel, tetapi hanya memberikan informasi jenis file yang didownload, dan yang melakukan konversi data dari HTML menjadi spreedsheet adalah Microsoft Excel.

Baris kode filename=nilai.xls adalah perintah untuk memberikan nama dari file Excel yang didownload.

Sedangkan perintah yang memberitahu eksekusi program selesai dan segera menyuruh menampilnkan download file adalah baris yang ditunjukan pada baris dibawah ini.
exit()

2. Akses file nilai.php pada web-brower, sebagai contoh http://127.0.0.1./nilai.php maka akan muncul tampilan seperti dibawah ini.


3. Setelah proses download selesai, dan file tersebut di download maka akan muncul konfirmasi Select Language.



4. Maka datanya akan muncul di Microsoft Excel seperti gambar dibawah ini.

19 komentar:

  1. Balasan
    1. Komentar ini telah dihapus oleh pengarang.

      Hapus
    2. Kalau Anda menggunakan MySQL dan PHP berikut ini cara mengambil data dari MySQL yang di sajikan dalam bentuk Table HTML -> http://www.anyexample.com/programming/php/php_mysql_example__display_table_as_html.xml

      Hapus
  2. om mau tanya nih, itu kok tapi kalo di buka di mozilla nama filenya gak sesuai sama yg kita kasih ya? trus gak ada file extension .xlsnya, jadi dia kayak file biasa gak ada extensionnya, mohon pencerahannya om , thanks

    BalasHapus
    Balasan
    1. Seharusnya ngak, karna contoh di posting ini saya menggunakan broswer mozila firefox.

      Kemungkinan terdapat kesalahan dalam menuliskan headernya.

      Hapus
  3. em kalo mau di bikin excelnya cuma kolom tertentu aja gimana ya,terimakasih

    BalasHapus
    Balasan
    1. Seperti belum bisa kalau mau menentukan kolom di excel secara spesifik.

      Hapus
  4. nah kalau kita ingin mengambil data txt file mau di konvert ke exelnya gmn om?

    BalasHapus
  5. Kalau datanya txt file harus dibaca lebih dahulu.

    BalasHapus
  6. om ? diconvert ke excel, tapi pake tombol/button "Save to Excel" itu gmna ?
    kan yg itu mh hanya pas d.Reload doangan

    BalasHapus
    Balasan
    1. Komentar ini telah dihapus oleh pengarang.

      Hapus
    2. Kalau ingin berupa tombol maka tag HTML nya menjadi seperti ini.

      <button onclick="nilai.php">Save To Excel</button>

      Hapus
  7. Bang kalo di hostingan ada muncul error seperti ini gmn yah bang ?

    Warning: Cannot modify header information - headers already sent by (output started at /var/www/clients/client1/web7/web/iopac2013/admin/reg_1.php:2) in /var/www/clients/client1/web7/web/iopac2013/admin/reg_1.php on line 36

    sy udh coba" setting pake .htaccess tp ga bisa aja, mohon pencerahan bang :D

    BalasHapus
    Balasan
    1. Itu karena sudah ada data yang dikirimkan ke browser sebelum perihtah header, dan biasanya ada spasi kosong di atas baris perintah header.

      Hapus
  8. Session nya gan kalo maksud agan di localhost Jalan Kemudian ketika du Upload ke Hosting errornya Seperti itu kemungkinan Perbedaan versi Php nya
    (kalo salah sorry Newbie juga)

    BalasHapus
  9. Mau nanya... Ini gag perlu pakai library ya?

    BalasHapus
    Balasan
    1. Iya tidak perlu pake library, karen Microsfot Excel dapat membaca HTML.

      Jadi yang di perlukan dilakukan adalah manipulasi informasi header ketikan dilakukan download. Yaitu pada bagian

      header("Content-Type: application/vnd.ms-excel");

      Hapus
  10. kalau mau buat multiple sheet gmn ya bg ?

    BalasHapus
  11. saya ini awam....penjelsan d atas tolong d perjwlas lagii....saya punta data html mau d congert ke exel.....rumus sql itu d pake pada saat apa dan bagaimana caraxxxx.....

    BalasHapus