Membaca, menemukan, dan menerapkan tepat guna informasi teknik yang disadur terus diaduk sampai rata di dapur produksi. Mau lihat?

...di balik layar

Cara Cepat buat file Excel pake PHP

Cara cepat ini memang jitu. Tapi, selain punya keunggulan mudah, dan cepat, cara ini pun ternyata jika hasil .xls nya dibuka di Open Office hasilnya tidak sempurna dibandingkan dengan hasil yang didapat saat dibuka dengan Microsoft Office, dan jika setiap kita buka file hasil .xls nya, pasti dianggap bahwa file ini sebenarnya memiliki extensi bukan .xls, tapi hal ini mudah kok mengatasinya, cuma tinggal pilih OK aja.

Kira-kira begini gampangnya. pertama buat isian Excel dengan bentuk tablenya HTML. Trus setelah bentuknya sudah seperti yang diinginkan, script HTML itu dimasukkan dalam satu variable PHP, misalnya $string_excel. Lalu ubah file tersebut menjadi bentuk fungsi di PHP. Dan akhirnya disimpan di suatu file, misalnya buat_excel.php Contoh:

  1. function draft_excel() {
  2. $string_excel =
  3. <table border="1" cellspacing="1" cellpadding="1" width="450">
  4. <tbody>
  5. <tr>
  6. <td class="header" colspan="3">POSITION PROFILE</td>
  7. </tr>
  8. <tr>
  9. <td class="title_left" width="150">Position Title</td>
  10. <td class="content" colspan="2">Pegawai Simpang Siur Tak Berarti Apa-Apa</td>
  11. </tr>
  12. <tr>
  13. <td class="title_left" width="150">Report To</td>
  14. <td class="content" colspan="2">Pemimpin Yang Akan Selalu Bertanggung Jawab</td>
  15. </tr>
  16. <tr></tr>
  17. </tbody></table>
  18. ;
  19. return $string_excel;
  20. }

Oh, iya bisa ditambahkan style css ringan juga lho untuk merekayasa (bahasanya booo..!!!) bentuk tulisan dan tampilan hasilnya. Setelah itu kita butuh tambahan satu fungsi lagi untuk menyatakan file tersebut bukan file PHP tadi Excel. Caranya adalah dengan membuat fungsi ini (silahkan tambahkan fungsi ini di file buat_excel.php juga) :

  1. function header_excel($filename) {
  2.         header("Content-type: application/vnd.ms-excel");
  3.         header("Content-Disposition: attachment; filename=$filename" );
  4.         header("Expires: 0");
  5.         header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
  6.         header("Pragma: public");
  7. }

Akhirnya kita mempunyai dua fungsi, yang pertama adalah draft_excel(), kemudian yang kedua adalah header_excel($filename). Sekarang coba panggil keduanya dengan menuliskan tambahan code seperti ini pada file buat_excel.php :

  1. header_excel(‘nama_file’.xls);
  2. echo draft_excel();

Coba sekarang jalankan file buat_excel.php. Hasilnya gimana? Baguskan? Teknik ini juga bisa digunakan dengan bahasa XML, tapi ku juga lom baca-baca tentang hal itu.

Jika ingin hasil yang lebih memuaskan, sebaiknya pelajari dan gunakan class php yang open-source ini.

Tags: ,

Filed under:tutorial

11 Responses to “Cara Cepat buat file Excel pake PHP”

  • afwan auliyar Says:

    perlu di coba dulu bob …
    screen shotnya bob :)

  • bakazero Says:

    oww… ku dah coba kok afwan…
    dan hasilnya: 3000+ file Excel hasil generate di PHP…

    lumayan kan…
    daripada jari-jari ini fitness seharian
    buat nginput doank seluruh data2nya…

    (memang sih perlu ada editing sana sini,
    karena ku juga ambil data dari Oracle lewat PHP).

  • dochi Says:

    wow berguna ne thanx ya tips2 nya

  • siNokk Says:

    aku jg dah ikut nyoba ni script.. tapi hsil excell-nya kok gk ada??

    mksutnya yg ‘nama_file’.xls tu mana?

  • bakazero Says:

    jika dijalankan script:

    header_excel(’nama_file’.xls);
    echo draft_excel();

    pada suatu file PHP…

    maka file itu akan dianggap sebagai file excel,
    dan langsung masuk ke perintah download.

    ‘nama_file’.xls itu untuk memberi nama file Excel,
    yang akan di download.

  • vidya_chantique Says:

    ya ampun..
    bob..
    kemaren gw dapet kerjaan ini..
    tapi dah sesai sekarang..

    eh baru baca deh tutorial kamu..
    ku coba deh..
    thanx infonya..

  • newbie php Says:

    bisa di perlihatkan contoh yang menggunakan oracle, soalnya saya nyoba tidak bisa2x…

    thnks

  • ismi Says:

    ga ngerti. paa mesti donlod ini dulukah?
    * BIFFwriter.php
    * Format.php
    * OLEwriter.php
    * Parser.php
    * Workbook.php
    * Worksheet.php
    dicoba ga bisa..

  • kuder Says:

    thx infonya btw gw modifikasi function header_exel … thx…thx…thx banget bro gpp khan gw modifikasi codenya

    function draft_excel() {
    $string_excel = ‘

    POSITION PROFILE

    Position Title
    Pegawai Simpang Siur Tak Berarti Apa-Apa

    Report To
    Pemimpin Yang Akan Selalu Bertanggung Jawab

    ‘;
    return $string_excel;
    }

    function header_excel($filename) {
    header(”Content-type: application/vnd.ms-excel”);
    header(”Content-Disposition: attachment; filename=$filename.”.”xls” );
    header(”Expires: 0″);
    header(”Cache-Control: must-revalidate, post-check=0,pre-check=0″);
    header(”Pragma: public”);
    }

    header_excel(’nama_file’);
    echo draft_excel();

  • Dudayz Says:

    Ini maksudnya nge parse sql ke excel ya??? hemmm dijadikan satu class bisa nda om bob?

  • astri Says:

    hahaha…
    sudah pake yang open source.
    tapi masih bingung caranya nginput lebih dari 1 sheet untuk kasus paging :( (

    kenapa org2 mempersulit yang mudah c :(

    ada usulan yang lain ga bob?

Leave a Reply