Thursday, July 25, 2013

Generating Excel Having UTF-8 Characters In PHP

This is another important piece of code that i have been looking for a long time.  With this source code we can export data to xls/csv file from mysql.


header('Content-Type: text/html; charset=utf-8');
mysql_connect("localhost","root","");
mysql_select_db("ladli");
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'");
//====================================================
$sql = "select * from test";
$result = mysql_query($sql);
$insert = "";
$insert_rows = "";
for ($i = 1; $i < mysql_num_fields($result); $i++)
{
    $insert_rows .= mysql_field_name($result,$i) . "\t";
}
$insert_rows.="\n";
//fwrite($fp, $insert_rows);
while($row = mysql_fetch_row($result))
{
    $insert .= $row[1]. "\t" .$row[2]. "\t".$row[3]. "\t".$row[4]. "\t".$row[5];
    $insert .= "\n";               //       serialize($assoc)
    //fwrite($fp, $insert);
}
$insert_rows.=$insert;
$csv_output=$insert_rows;
//=========================================================
$filename="abcd";
header('Content-Description: File Transfer');
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header("Content-disposition: filename=".$filename.".csv");
header('Content-Transfer-Encoding: binary');
header('Pragma: public');
print "\xEF\xBB\xBF"; // UTF-8 BOM
print $csv_output;
exit;

No comments :

Post a Comment