導出csv文件時,處理分隔符問題

CSV文件默認以英文逗號作爲列分隔符,換行符做爲行分隔符。
 
 若是不提供網頁形式只用命令行或二進制程序輸出數據到CSV,只須要將數據段按,分割,行按\n分割,寫入到一個.csv文件便可。
 
 但有時字段裏含有,和換行符就麻煩了,數據輸出會出現混亂。這時能夠使用雙引號"來將每一個字段內容括起來,CSV默認認爲由""括起來的內容是一個欄位, 這時無論欄位內容裏有除"以外字符的任何字符均可以按原來形式引用。
例如 
 "
; 名:k,j",email,是一行的內容,
 "
 姓;:k,j" 是一個單元格里的。
""括起來的欄位內容裏有CSV默認的換行符也不要緊。這樣輸出數據就很方便了。注意"是要加轉義字符。
php

eg, spa

$content = "\"".$result_name."\",\"".$result_employer."\",\"".$result_specialism."\",\"".$rank[0]."\","; 命令行

echo $content; orm


惟一須要注意的 就是若字段內容裏含有"怎麼辦。這時只需將"替換成兩個雙引號("")便可。CSV會將字段裏的兩個雙引號""顯示成一個。
ci

eg,
input

  $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'');
 
it

/* io

處理數據輸出
form

*/ 
?>
直接點擊到一個php頁面就能下載了
 form
裏用一 個<input type='button' value='導出CSV' onclick='saveCSV()'/>saveCSV()是一個JS方法,將formaction指向saveCSV.php email

相關文章
相關標籤/搜索