Sabtu, 11 Mei 2013

Export Tabel MySQL Ke Excel Menggunakan PHP

Dalam pembuatan laporan kadang ingin diedit menggunakan excel dahulu sebelum di print, nah didalam PHP ada script untuk ekport dari PHP ke Excel, Berikut ini script nya. dapat copas dari blog tetangga, tapi sayang masih pake PHP 4




Dapatkan records dari tabel yang akan di export
<?
$result=mysql_query("select * from peserta order by nama asc");

function xlsBOF() {
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
return;
}
function xlsEOF() {
echo pack("ss", 0x0A, 0x00);
return;
}
function xlsWriteNumber($Row, $Col, $Value) {
echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
echo pack("d", $Value);
return;
}
function xlsWriteLabel($Row, $Col, $Value ) {
$L = strlen($Value);
echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
echo $Value;
return;
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=hasilexport.xls ");
header("Content-Transfer-Encoding: binary ");

xlsBOF();
Buatlah judul tabelnya dimulai dari kolom 0 dan baris 0.
xlsWriteLabel(0,0,"NAMA PESERTA SEMINAR ANTAR BANGSA PENDIDIKAN ICT");
Buatlah nama kolom tersebut yang dimulai dari baris ke 3:
xlsWriteLabel(2,0,"No.");
xlsWriteLabel(2,1,"Nama");
xlsWriteLabel(2,2,"Jns Kelamin");
xlsWriteLabel(2,3,"Instansi");
xlsWriteLabel(2,4,"Pekerjaan");
xlsWriteLabel(2,5,"Alamat");
xlsWriteLabel(2,6,"Biaya");

$xlsRow = 3;
Selanjutnya letakkan data tersebut sesuai dengan kolom yang sudah kita buat tadi
while($row=mysql_fetch_array($result)){
   
xlsWriteNumber($xlsRow,0,$row['id']);
xlsWriteLabel($xlsRow,1,$row['nama']);
xlsWriteLabel($xlsRow,2,$row['kelamin']);
xlsWriteLabel($xlsRow,3,$row['instansi']);
xlsWriteLabel($xlsRow,4,$row['pekerjaan']);
xlsWriteLabel($xlsRow,5,$row['alamat']);
xlsWriteLabel($xlsRow,6,$row['biaya']);
$xlsRow++;
}
xlsEOF();
exit();
?>
Simpanlah file di atas dengan nama export.php.untuk mengaksesnya tinggal buat link aja ke file export.php maka langsung terbentuk tabel excel nya.

atau dari blog lain :

Menampilkan data di halaman Web (file index.php) 
<table>
<tr>
<th>No</th>
<th>Nama Siswa</th>
<th>NIS</th>
<th>Kelamin</th>
<th>Alamat</th>
<th>Telpon</th>
</tr>
<?php
$query=mysql_query(“select * from data_siswa order by id_siswa asc”);
while($row=mysql_fetch_array($query)){
?>
<tr>
<td><?php echo $c=$c+1;?></td>
<td><?php echo $row['nama_siswa'];?></td>
<td><?php echo $row['nis'];?></td>
<td><?php echo $row['kelamin'];?></td>
<td><?php echo $row['alamat'];?></td>
<td><?php echo $row['telpon'];?></td>
</tr>
<?php
}
?>
</table>
Link export database ke Excel (file index.php)
<a href=”javascript:;” ><img src=”excel-icon.jpeg” width=”18″ height=”18″ border=”0″ onClick=”window.open(‘./excel/export_excel.php’,'scrollwindow’,'top=200,left=300,width=800,height=500′);”></a>
Script Export Database ke Excel (file export_excel.php)
//koneksi database
include “../koneksi.php”;
//query database untuk menampilkan data siswa
$queabsdetail = “SELECT * FROM data_siswa order by id_siswa asc”;
$exequeabsdetail = mysql_query($queabsdetail);
while($res = mysql_fetch_array($exequeabsdetail)){
//mengambil data siswa dari database dimasukan ke array
$data['id_siswa'][] = $res['id_siswa'];
$data['nama_siswa'][] = $res['nama_siswa'];
$data['nis'][] = $res['nis'];
$data['kelamin'][] = $res['kelamin'];
$data['alamat'][] = $res['alamat'];
$data['telpon'][] = $res['telpon'];
}
//untuk primary key table data_siswa yaitu id_siswa
$jm = sizeof($data['id_siswa']);
header(“Pragma: public” );
header(“Expires: 0″ );
header(“Cache-Control: must-revalidate, post-check=0, pre-check=0″ );
header(“Content-Type: application/force-download” );
header(“Content-Type: application/octet-stream” );
header(“Content-Type: application/download” );;
header(“Content-Disposition: attachment;filename=file_siswa.xls ” );
header(“Content-Transfer-Encoding: binary ” );
xlsBOF();
/* 
posisi excel berdasarkan baris dan kolom
diaplikasi posisinya berdasarkan nomor array dimulai dari 0
sedangkan di excel dimulai dari 1
ini untuk judul di excel. posisinya di baris array 0, kolom array 3
berarti posisi di excel 0 berarti baris 1, dan 3 berarti kolom 4
*/
xlsWriteLabel(0,3,”Data Siswa” );
/*
untuk nama2 field dimulai dari baris array 2(baris 3 di excel) 
untuk kolomnya dimulai dari array 0(baris 1 di excel)
*/
xlsWriteLabel(2,0,”Nomor” );
xlsWriteLabel(2,1,”Nama Siswa” );
xlsWriteLabel(2,2,”NIS” );
xlsWriteLabel(2,3,”Kelamin” );
xlsWriteLabel(2,4,”Alamat” );
xlsWriteLabel(2,5,”Telpon” );
/*
untuk mulai baris data (row) dimulai pada array 3(baris 4 di excel) 
*/
$xlsRow = 3;
//untuk menampilkan data dari database di file excel
for ($y=0; $y<$jm; $y++) {
++$i;
xlsWriteNumber($xlsRow,0,”$i” );
xlsWriteLabel($xlsRow,1,$data['nama_siswa'][$y]);
xlsWriteLabel($xlsRow,2,$data['nis'][$y]);
xlsWriteLabel($xlsRow,3,$data['kelamin'][$y]);
xlsWriteLabel($xlsRow,4,$data['alamat'][$y]);
xlsWriteLabel($xlsRow,5,$data['telpon'][$y]);
$xlsRow++;
}
xlsEOF();
exit();
Tampilan Output
Alur Aplikasi
  1. Menampilkan data di halaman web
  2. Klik icon excel untuk export data ke file excel
  3. Akan muncul window untuk open atau download file dengan namafile_siswa.xls
  4. Selesai
Download

Tidak ada komentar: