Buat yang belum tau, mungkin plugin yang dibawah ini bisa berguna. Plugin ToExcel ini menkonversi data dari hasil query ke dalam bentuk XLS bukan CSV. Jadi mungkin sangat cocok untuk berbagai macam bentuk laporan atau ekspor data.

Kode lengkap plugin ini adalah sebagai berikut

< ?php if (!defined('BASEPATH')) exit('No direct script access allowed');

function to_excel($query, $filename='xlsoutput')
{
     $headers = ''; // variable untuk menampung header
     $data = ''; // variable untuk menampung data

     $obj =& get_instance();

     $fields = $query->field_data();
     if ($query->num_rows() == 0) {
          echo '

The table appears to have no data.

';
     } else {
          foreach ($fields as $field) {
             $headers .= $field->name . "\t";
          }

          foreach ($query->result() as $row) {
               $line = '';
               foreach($row as $value) {
                    if ((!isset($value)) OR ($value == "")) {
                         $value = "\t";
                    } else {
                         $value = str_replace('"', '""', $value);
                         $value = '"' . $value . '"' . "\t";
                    }
                    $line .= $value;
               }
               $data .= trim($line)."\n";
          }

          $data = str_replace("\r","",$data);

          header("Content-type: application/x-msdownload");
          header("Content-Disposition: attachment; filename=$filename.xls");
          echo "$headers\n$data";
     }
}
?>

contoh penggunaanya sebagai berikut :

$this->load->plugin('to_excel');
$this->db->use_table('tablename');
$this->db->select('field1', 'field2');
$query = $this->db->get();
to_excel($query, ['namafile']); // nama file tidak wajib, bila tidak diisi akan menggunakan nama file default 'xlsoutput'

semoga berguna.
wassalam

sumber : codeigniter.com/wiki/Excel_Plugin/

19 Responses to “Export data ke Excel (XLS bukan CSV)”

  1. ians says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    wah ini yg dicari,TAPI…..
    gimana cara penggunaannya tuh?
    bisa kasih detailnya?

    bales yah…..

    terima kasih

  2. qorianku says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    hallo.

    mas nya tulis pluginnya, trus taruh file nya di folder plugin nya CI.

    trus. pluginnya di load, seperti contoh, di class controller mas.

    beres deh

    wassalam

  3. gemini says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    mas yang baik hati kasih dong file yang bisa di download jadi bisa buat coba-coba, iyah kalo cuma kayak diatas otak saya belum nyambung…

  4. gemini says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    ada error gimana ???
    A PHP Error was encountered

    Severity: Warning

    Message: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\koperasi1\system\plugins\to_excel_pi.php:38)

    Filename: plugins/to_excel_pi.php

    Line Number: 33
    A PHP Error was encountered

    Severity: Warning

    Message: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\koperasi1\system\plugins\to_excel_pi.php:38)

    Filename: plugins/to_excel_pi.php

    Line Number: 34

  5. qorianku says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    itu artinya…
    skrip nya ada yang menghasilkan output sebelum perintah header dipanggil .
    dalam hal ini , sebelum perintah to_excel.

  6. Bayuaji Sukabumi says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    Pusing-pusing amat sih om, mo export data ke Excel pake PHP juga, nih aku kasih hasil googling yg mantebbbzzzz :

    function cleanData(&$str) { $str = preg_replace(“/\t/”, “\\t”, $str); $str = preg_replace(“/\n/”, “\\n”, $str); }
    # file name for download
    $filename = “website_data_” . date(‘Ymd’) . “.xls”;
    header(“Content-Disposition: attachment; filename=\”$filename\”");
    header(“Content-Type: application/vnd.ms-excel”);
    $flag = false;
    $result = mysql_query(“SELECT * FROM t_pasien ORDER BY no_medrec”) or die(‘Query failed!’);
    while(false !== ($row = mysql_fetch_assoc($result))) {
    if(!$flag)
    {
    # display field/column names as first row
    echo implode(“\t”, array_keys($row)) . “\n”;
    $flag = true; } array_walk($row, ‘cleanData’);
    echo implode(“\t”, array_values($row)) . “\n”;
    }

  7. suke says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    Bayuaji- Sukabumi
    Thanks banget bro, code yang lo kasi memang mantab banget, bgtu di coba langsung mau, gk ada error dn simple banget….!!!!
    Temen2 yang mau export dari mysql(phpmyadmin) ke excel pake php, silakan coba code dari Bayu aja…!!!
    Thanks…

  8. suke says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    ngomng2 ada code untuk import dari excel ke mysql gk??
    yang pake php ya…. thanks bagi yang jawab…!!!

  9. sloth says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    klo dari array ke excel ada gak?!?

    saya belum nemu nih…

  10. qorianku says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    tinggal diubah aja baris ..
    foreach ($query->result() as $row)

    variable $query->result() kan sudah dalam bentuk array..

  11. cumi says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    ini code bisa di pake g untuk upload… tp uploadnya data xls…
    nah yang jadi pas di tampilanya dia muncul isi dari data di dalam xls yg di simpan…
    thanks atas yg menjawab

  12. theeya says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    udah aku coba, tapi dapet error message gini ya:

    Fatal error: Call to a member function field_data() on a non-object in C:\xampp\htdocs\Excel\system\plugins\to_excel_pi.php on line 15

    kira2 dimana yang perlu diubah ya..
    mohon bantuannya..
    makasih..

  13. DEKA says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    @theeya.. mungkin variable query nya return nilai kosong..
    bisa tahu nggak source code pemakaiannya gimana?

    wassalam

  14. theeya says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    yang problem kemaren udah selesai, ternyata seharusnya return $query; sedangan saya pake return $query->result();

    kemudian yang sekarang, format cell excel hasil export nya bisa di set gak ya?
    soalnya jadi aneh.
    5221840062365045 menjadi 5.22184E+15 setelah diubah menjadi format number(secara manual) menjadi 5221840062365040

    digit terakhir menjadi 0.. kenapa ya…
    mohon bantuannya, atau mungkin ada solusi lain

  15. theeya says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    akhirnya saya tambahin single quote…. (^_^)

  16. deka says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    @theeya… digit terakhir belakang jadi nol ya … hehehe itu bug di excel nya..
    temenku beberapa hari yang lalu juga ngalamin bug yang sama (tapi bukan karena,
    make fungsi ekspor ini) ..

  17. theeya says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    hehehe.. Iya2…
    Emang ribet kalo export ke excel, dr database jg formatnya jd beda.
    Tp gmn lg usernya minta gitu..

    Sip deh.. Mksh yaa..

  18. toni says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    pusing euy… gak nyambung2 ….
    itu plugin disave jadi file plugin atau bagaimana ?
    trus untuk contoh penggunaan .. apakah itu beda nama file misalnya form.php

    form.php > panggil file plugin.php

    mohon pencerahannya n jangan lama2 jawabnya … butuh nieh :)

  19. deka says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    @toni.. file plugin diatas disimpan dengan nama _pi.php di folder
    /system/plugins/.

    jadi misal codeigniternya diextract di c:\www\htdocs\ci => maka folder pluginnya di
    c:\www\htdocs\ci\system\plugins\

    dan nama fungsinya adalah to_excel maka namafile nya adalah to_excel_pi.php

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2010 Catatan (PHP) Suffusion WordPress theme by Sayontan Sinha