October 28, 2016 thumb Membuat File Excel di Server dengan PHPExcel

salam, tulisan saya kali adalah cara membuat excel file yang tidak serta merta langsung di download tetapi di simpan dulu di server. lho kenapa tidak langsung di download, well untuk melakukan download file excel kebanyakan dari kita akan melakukan on the fly yang artinya secara langsung di create langsung di download lalu dihapus. ini tentu saja akan sangat boros resource ketika jumlah data yang di download sangat besar. akan lebih efektif jika kita menyimpan file sementara di server dan kemudian kita download data tersebut sedikit demi sedikit.

menyambung tulisan Mengatur Background pada Excel dengan PHPExcel, kali ini kita akan buat supaya tidak serta merta file tersebut di download tetapi di save di server yang nantinya jika kita butuh dapat kita download secara berulang-ulang. tidak perlu create dari awal. oke seperti tulisan yang sudah – sudah untuk database yang akan kita download adalah sebagai berikut.

Database yan gakan kita pakai sebagai contoh

Database yan gakan kita pakai sebagai contoh

database ini nantinya akan dibuat file excel-nya sedemikian rupa, tetapi seperti rencana awal kita tadi. kali ini kita tidak men-download-nya secara langsung tetapi cuma menyimpanya di server dan server menampilkan link untuk men-download. adapun file excel yang akan kita buat adalah sebagai berikut.

berikut ini adalah file excel yang ingin kita create dari tulisan sebelumnya

berikut ini adalah file excel yang ingin kita create dari tulisan sebelumnya

adapun cara agar file tidak di download tapi dibuatkan supaya di save di server dan disediakan link download adalah dengan menghilangkan opsi header yang mana opsi ini akan memerintahkan browser untuk membuka stream download, dan memerintahkan phpexcel untuk menyimpan dalam sebuah file bukan sebuah stream. dengan dihilangkan dan diganti dengan link, maka yang tampil adalah sebuah link yang ketika di klik menuju kepada file yang akan di download. berikut ini adalah source code yang perlu dihilangkan beserta penggantinya.

/* start - BLOCK MEMBUAT SAVE FILE DAN LINK DOWNLOAD*/

/**
 * bagian ini di comment karena akan membuat browser beralih 
 * untuk membuka stream download. sebagai gantinya file akan disimpan di keluarga.xlsx
 * yang posisinya sama dengan file test_save_server.php
 * 
 *  - header ( 'Content-Type: application/vnd.ms-excel' );
 *  - header ( 'Content-Disposition: attachment;filename="Keluarga.xls"' );
 *  - header ( 'Cache-Control: max-age=0' );
 * */

$writer = PHPExcel_IOFactory::createWriter ( $file, 'Excel5' );
$writer->save ( 'keluarga.xlsx' );
/* start - BLOCK MEMBUAT SAVE FILE DAN LINK DOWNLOAD*/

/* start - BLOCK UNTUK MEMBUAT LINK DOWNLOAD*/
echo "Klik to Download File <a href='keluarga.xlsx' target='_blank'>Keluarga.xlsx</a>";
/* end - BLOCK UNTUK MEMBUAT LINK DOWNLOAD*/

ketika dijalankan sebuah link download akan ditampilkan sehingga user dapat melakukan klik dan opsi untuk penyimpanan pun ditampilkan.

diganti dengan link bukan langsung download

diganti dengan link bukan langsung download

ketika dijalankan akan muncul sebuah teks yang mana akan menampilkan sebuah sebuah link yang jika di klik akan men-download file hasil generate phpexcel. kenapa tidak langsung di download toh setiap kali membuka file php akan melakukan generate ulang.

File di simpan di server pada lokasi yang sama dengan action phpnya.

File di simpan di server pada lokasi yang sama dengan action phpnya.

seperti yang saya katakan sebelumnya kita hendak melakukan cache sehingga dilain waktu system tidak perlu melakukan generate secara terus-menerus menggunakan file php, ketika di cek  file keluarga.xlsx sudah ada, maka tidak perlu membuat lagi cukup tampilkan saja lagi, untuk saat ini belum saya bikinkan logika pencegahan generate file keluarga.xlsx ketika file tersebut sudah ada, pada tulisan berikutnya akan saya bahas, apa keuntunganya dan bagaimana caranya agar tidak membebani sistem.

Ketika di klik user barulah ditampilkan opsi untuk menyimpan

Ketika di klik user barulah ditampilkan opsi untuk menyimpan

oke kali ini cuma in yang bisa saya bahas, untuk source code lengkap dapat di download di Dropbox atau Google Drive, jangan lewatkan tulisan berikutnya, Okey Donkey. salam goblooge.

Comments

total comments