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>

Advertisement
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