CSV檔是很普遍的Grid式資料匯出格式,而很多人也都知道Excel可以直接將CSV檔開啟成試算表。不過稱作Comma Separated Value的CSV,除了"用逗號將值隔開"之外,還有一些進階的花式技巧。例如:
1. 如果是內含逗號的字串值,可以用雙引號將字串包起來,例如: 886,"Taipei, Taiwan"
2. 如果在雙引號中的字串中又包含了雙引號,則可以遵循VB/VBScript的慣例,用兩個雙引號代替。例如: "12'30"""-->12'30"
3. 用Excel開啟CSV時,Excel會自動判斷值的性質,進行資料轉換。比較煩的是,明明編號是007,就算用了雙引號包夾成"007",Excel還是會將它轉換成7,即使在Excel中重新調整它的儲存格式為字串,也無法還原回007。
所以,我們可以用="007"的宣告方式,強制指定字串值,Excel就不會雞婆將它轉成數字。而這個技巧還可以再延伸,甚至可以用=SUM(B2:B5)的寫法,指定儲存格的運算式。
此外Excel只接受ANSI/BIG5編碼的CSV檔,如果將CSV檔存成Unicode編碼,Excel就無法識別出逗號,而會將整列資料視為同一個值。
----------------------------------------------
另外…Excel不默認支持UTF8的CSV文件
因此excel打開utf-8中文的csv百分百會發生問題。
有兩種解決辦法:
1. 可以先用notepad打開csv,另存為ANSI編碼,再用Excel打開
2. 先打開空的Excel,然後在資料->取得外部資料->從文字檔→選擇csv文件,在導入資料對話框中選好UTF-8的編碼(你會發現默認是ANSI),就可以了。
沒有留言:
張貼留言