2010年8月24日 星期二

[Tips] 用PHP產生CSV檔案並下載

其實就是這樣,
要產生CSV格式的檔案, 就用fputs照格式隔開, \t是位移符號(tab), \n是換行符號(newline),
$fp = fopen("myfile.csv", "w");
fputs($fp, "First\tSecond\tThird\n");
fclose($fp);

或是懶人用的fputcsv,
$list = array ('aaa,bbb,ccc,dddd','123,456,789','"aaa","bbb"');
$fp = fopen('myfile.csv', 'w');
foreach ($list as $line) {
fputcsv($fp, split(',', $line));
}
fclose($fp);

這篇要講的主要是header的用法,
如果要直接將內容輸出給瀏覽器下載,
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=myfile.csv");
echo "First\tSecond\tThird\n"

如果是要讀取已存在的檔案給瀏覽器下載, 下載名稱是由header裡的filename決定,
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=myfile.csv");
readfile("myfile.csv");

參考資料: PHP 建立 Excel 檔案

沒有留言: