轉自:http://blog.sina.com.cn/s/blog_468530a60100kjpy.html
CSV
文件默認以英文逗號做為列分隔符,換行符作為行分隔符。
如果不提供網頁形式只用命令行或二進制程序輸出數據到
CSV
,只需要將數據段按
,
分割,行按
\n
分割,寫入到一個
.csv
文件即可。
但有時字段里含有
,
和換行符就麻煩了,數據輸出會出現混亂。
這時可以使用雙引號
"
來將每個字段內容括起來,
CSV
默認認為由
""
括起來的內容是一個欄位, 這時不管欄位內容里有除
"
之外字符的任何字符都可以按原來形式引用。
例如
"姓
;
名
:k,j",email
,是一行的內容,
"姓
;
名
:k,j"
是一個單元格里的。
用
""
括起來的欄位內容里有
CSV
默認的換行符也沒關系。這樣輸出數據就很方便了。注意"是要加轉義字符。
eg,
$content = "\"".$result_name."\",\"".$result_employer."\",\"".$result_specialism."\",\"".$rank[0]."\",";
echo $content;
唯一需要注意的 就是若字段內容里含有
"
怎么辦。這時只需將
"
替換成兩個連續的英文雙引號
("")
即可。
CSV
會將字段里的兩個雙引號
""
顯示成一個。
eg,
$result_specialism = str_replace("\"","\"\"",$datamap['specialism']->content());
如果需要使用網頁導出數據的形式,需要寫header了
以PHP為例:
首先做一個頁面,是被下載的CSV文件頁 saveCSV.php
<?php
//指明此文件類型,頁面類型
header("Content-Disposition: attachment; filename=".$filename.".csv");
header(''Content-Type:text/csv'');
/*
處理數據輸出
*/
?>
直接點擊到一個php頁面就能下載了
form里用一 個<input type='button' value='導出CSV' onclick='saveCSV()'/>,saveCSV()是一個JS方法,將form的action指向saveCSV.php
http://www.cnblogs.com/chyong168/archive/2012/03/22/2411002.html