Export Data MySQL ke Excel .csv


Pada Aplikasi Web Database biasanya kita memerlukan fasilitas untuk export atau download data dari database MySQL ke Excel.

Kali ini saya akan berikan contoh coding PHP untuk membuat fasilitas export data MySQL ke dalam file .csv yang dapat dibuka dengan program Excel.

Contoh coding PHP berikut ini untuk mendownload data pada tabel “users di database “students”, berikut ini coding selengkapnya.

<?php
error_reporting(0);
date_default_timezone_set('Asia/Jakarta');
$Timestamp = date('Ymd@His');
// Connect to DB
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'students';
$tbl	= 'users';
$filename = "$tbl"."_"."$Timestamp".".csv";
$conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname) or die ('Error connecting to db!');
// Get all fields names in the table.
$result = mysqli_query($conn,"SHOW COLUMNS FROM $tbl") or die("Error running query!");
$numofcol = mysqli_num_rows($result);
$out = '';
if ($numofcol > 0)
{   while ($row = mysqli_fetch_assoc($result))
	{	$out .='"'.$row['Field'].'",'; }
}
$out .="\n";
// Add all records in the table to $out.
$result=mysqli_query($conn,"SELECT * FROM $tbl") or die("Error run query");
while ($l = mysqli_fetch_array($result))
{	for ($i = 0; $i < $numofcol; $i++)
	{	$out .='"'.$l["$i"].'",'; }
	$out .="\n";
}
//Download $filename.csv
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=$filename");
header("Content-Transfer-Encoding: binary ");
echo $out;
//or save $out as $filename.csv on server
//file_put_contents($filename, $out);
?>

Jika Anda ingin menyimpan file csv di server, Anda tinggal membuka comment pada 2 baris terakhir.

Selamat mencoba, semoga sukses.

Leave your comment