|
|
|
|
|
CSV(Comma-Separated Values 逗號分隔值格式) 用于在各種電子表格程序之間交換和轉(zhuǎn)換數(shù)據(jù),今天介紹一下常用的CSV文件格式標(biāo)準(zhǔn)——RFC4180。
CSV 格式?jīng)]有正式的規(guī)范存在,它允許各種各樣的CSV文件的解釋。本節(jié)記錄了大多數(shù)都遵循的格式規(guī)范:
1、每條記錄單獨一行,用一行分隔中斷(CRLF)。例如:
aaa,bbb,ccc CRLF
zzz,yyy,xxx CRLF
2、文件中的最后一條記錄可能有也可能沒有結(jié)束行中斷。例如:
aaa,bbb,ccc CRLF
zzz,yyy,xxx
3、可能有一個可選的標(biāo)題行出現(xiàn)在第一行,與普通記錄行具有相同格式。這標(biāo)頭將包含與文件中的字段對應(yīng)的名稱,并且應(yīng)該包含與文件其余部分中的記錄相同數(shù)量的字段(標(biāo)題行的存在與否應(yīng)該通過這個可選的MIME類型的“header”參數(shù)來指示)。例如:
字段名,字段名,字段名 CRLF
aaa,bbb,ccc CRLF
zzz,yyy,xxx CRLF
4、表頭和每條記錄內(nèi),可能有一個或多個字段,以逗號分隔。每行應(yīng)包含相同的整個文件的字段數(shù)??崭癖徽J(rèn)為是字段的一部分,不應(yīng)該被忽視。記錄后面中的最后一個字段不能跟逗號。例如:
aaa,bbb,ccc
5、每個字段可以用也可以不用雙引號括起來(但是一些程序,例如 Microsoft Excel,根本不使用雙引號)。如果字段沒有用雙引號引起來,那么雙引號不能出現(xiàn)在字段內(nèi)。例如:
"aaa","bbb","ccc" CRLF
zzz,yyy,xxx
6、包含換行符(CRLF)、雙引號和逗號的字段應(yīng)該用雙引號括起來。例如:
"aaa","b CRLF
bb","ccc" CRLF
zzz,yyy,xxx
7、如果用雙引號括起字段,那么一個雙引號出現(xiàn)在字段內(nèi)必須通過在其前面加上另一個雙引號。例如:
"aaa","b""bb","ccc"
示例
下面是一個符合復(fù)雜標(biāo)準(zhǔn)的 CSV 文件的示例:
Year,Make,Model,Description,Price
1997,Ford,"E350
F150","ac, abs,
moon",3000.00
1999,Chevy,"Venture ""Extended Edition""","",4900.00
1999,Chevy,"Venture ""Extended Edition, Very Large""",,5000.00
1996,Jeep,Grand Cherokee,"MUST SELL!
air,
"",moon,""
roof, loaded",4799.00
1999,BMW,Z3,"used",14900.00
1999, Toyota,Corolla,,7000.00
如上所見,有些行是多行的并且包含引號和逗號,這將給出下表:
年 | 制作 | 模型 | 描述 | 價格 |
---|---|---|---|---|
1997 | Ford | E350 F150 | ac, abc, moon | 3000.00 |
1999 | Chevy | Venture "Extended Edition" | 4900.00 | |
1999 | Chevy | Venture "Extended Edition, Very Large" | 5000.00 | |
1996年 | Jeep | Grand Cherokee | MUST SELL! air, ",moon," roof, loaded | 4799.00 |
1999 | BMW | Z3 | used | 14900.00 |
1999 | Toyota | Corolla | 7000.00 |
如上所見,有些列是多行的,最后一行的“ Toyota”列以空格開頭。