Here’s an easiest ways to generate excel report from PHP with XML. Ga perlu expert XML, tinggal ngedit dikit dah bisa bikin laporan dalam bentuk excel. Gini caranya:
- Bikin format laporan menggunakan Ms Excel, lalu save as XML Spreadsheet (*.xml)
- Open with Notepad ato boleh pake IDE lain terserah. Di sini aku pake Zend Studio.
- Hapus 2 baris pertama,
- Lalu ganti dengan baris perintah ini:
- Cari string ss:ExpandedRowCount, lalu ubah nilainya dengan jumlah data dalam table database ditambah dengan nilai awal ExpandedRowCount. Contoh:
- Masukkan data dari database ke dalam xml.
- Finish. Jika skrip dijalankan, maka akan keluar window File Download.
<?xml version="1.0"?> <?mso-application progid="Excel.Sheet"?>
<? header("Content-type: application/octet-stream"); // file name header("Content-disposition: attachment; filename=Daftar Surya.xls"); header("Pragma: no-cache"); header("Expires: 0"); echo "<?xml version=\"1.0\"?><?mso-application progid=\"Excel.Sheet\"?>"; ?>
filename dapat diganti sesuai dengan keinginan.
<Table ss:ExpandedColumnCount="4" ss:ExpandedRowCount="4" x:FullColumns="1" x:FullRows="1">
diganti dengan
<? // num rows mysql_connect("localhost","surya","kebo"); mysql_select_db("db_surya") or die(mysql_error()); $query = "select * from t_pelanggan"; $hasil_jml = mysql_query($query) or die(mysql_error()); $jml_data = mysql_num_rows($hasil_jml); ?> <Table ss:ExpandedColumnCount="4" ss:ExpandedRowCount="<?echo 4+$jml_data?>" x:FullColumns="1" x:FullRows="1">
<Row ss:Index="2" ss:StyleID="s24"> <Cell ss:StyleID="s30"><Data ss:Type="String">No</Data></Cell> <Cell ss:StyleID="s30"><Data ss:Type="String">Nama</Data></Cell> <Cell ss:StyleID="s30"><Data ss:Type="String">Alamat</Data></Cell> <Cell ss:StyleID="s30"><Data ss:Type="String">No Telpon</Data></Cell> </Row> <Row> <Cell ss:StyleID="s28"><Data ss:Type="Number">1</Data></Cell> <Cell ss:StyleID="s28"><Data ss:Type="String">Surya</Data></Cell> <Cell ss:StyleID="s28"><Data ss:Type="String">Medan</Data></Cell> <Cell ss:StyleID="s28"><Data ss:Type="String">081</Data></Cell> </Row> <Row>
setelah dimasukkan skrip php:
<Row ss:Index="2" ss:StyleID="s24"> <Cell ss:StyleID="s30"><Data ss:Type="String">No</Data></Cell> <Cell ss:StyleID="s30"><Data ss:Type="String">Nama</Data></Cell> <Cell ss:StyleID="s30"><Data ss:Type="String">Alamat</Data></Cell> <Cell ss:StyleID="s30"><Data ss:Type="String">No Telpon</Data></Cell> </Row> <? $x=1; while ($data = mysql_fetch_array($hasil_jml)) { ?> <Row> <Cell ss:StyleID="s28"><Data ss:Type="Number"><?echo $x++;?></Data></Cell> <Cell ss:StyleID="s28"><Data ss:Type="String"><?echo $data["nama"]?></Data></Cell> <Cell ss:StyleID="s28"><Data ss:Type="String"><?echo $data["alamat"]?></Data></Cell> <Cell ss:StyleID="s28"><Data ss:Type="String"><?echo $data["no_telp"]?></Data></Cell> </Row> <? } ?> <Row>
Advertisements
tidak ada contoh untuk di download?
kerena saya udah coba mengikuti langkah2 di atas tapi tetap tidak jalan..
http://www.4shared.com/file/bTBzaHOe/excel.html
klo di excel nya ada gambar nya gmn? ketika di save as ke xlm gambar tidak bisa tampil.??
Hehehe.. Pertanyaan yang bagus..
Saya sendiri juga masih belajar mas, belum begitu expert..
Klo tidak salah bisa sih pake XML (harus belajar lagi)..
Klo menggunakan gambar, biasanya aku pake fpdf untuk membuat laporan dari PDF.
Tapi itu pertanyaan yang bagus, saya juga akan mencobanya..
Kalo sampeyan sudah tahu caranya di-share ya? Thx.