作者tropical72 (蓝影)
站内Programming
标题Re: [问题] csv档的格式
时间Sat Sep 24 14:20:17 2011
截取自於
#1D3f8CHP (C_and_CPP) 下前半段
以下是我直接从 M$ excel 存成 csv 结果之整理:
1. 若为纯文字、数字,且其中不包含双引号、单引号、逗号,
则直接以逗号分隔。
2. 若该格无任何内容,则直接跳过该格,即会出现连续二个逗号。
(这点和 wiki 上不同, wiki 指明,若无内容会以 ,"", 方式存)
3. 若该格内容有 双引号或逗号 ,则将为该储存格加上双引号,
同时用 notepad 档开启结果 ,会发现原本的双引号会以 2个双引表示
ex: 12"27"53(excel 显示) ---> "12""27""53"(csv文本)
4. 若该格内容「开头」有单引号,excel 存完後开头之单引都将不见
ex: '12'34'(excel 也无法显示第一个单引号)
----> 12'34'(csv 文本储存)
-------
回到你的问题,我不确定 wiki 上对於
1999 Chevy Venture "Extended Edition"
格式有无完全叙述,但依你之说法,它是属於txt tab 分隔档,即是以 [tab] 为分隔,
到时用 M$ excel 也可开启,所以原之格式大概是
1999
[tab]Chevy
[tab]Venture "Extended Edition"
注意到
Venture "Extended Edition" 它只有以空白分隔,不是以 tab 分隔,
所以视作同一栏位。
现,若欲存
Veture Extened Edition
在 csv 里,即使它有空白,但它非分隔符号 tab,存时仍存成
Veture Extened Edition
再加入栏位里,一个双引数用 csv 要用两个双引号表示的话,
Veture "Extened Edition" 就变成
Veture ""Extened Edition""
但如上述原则说过,当该栏位含有 双引号 或 逗号 时,将在头尾再加上一次双引号
"Veture ""Extened Edition"""
其它栏位部份并无二异。
※ 引述《apiod ( )》之铭言:
: 刚看了wiki
: 1999 Chevy Venture "Extended Edition"
: 在csv档会表示成
: 1999,Chevy,"Venture ""Extended Edition"""
: 我想问的是
: 为什麽 Vwnture "Extended Edition"
: 要变成 "Venture ""Extended Edition"""
: 双引号又不是逗号,
: 照原本的Venture "Extended Edition"来表示会有什麽问题吗?
简单的说,用现有软体开,它出现的结果不是个可预期的,
因它非 csv 逗号分隔可接受之格式。
我写程式的话,会把这种东西额外当作 except 拉出来处理。
: 感谢解惑
--
YouLoveMe() ? LetItBe() : LetMeFree();
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 180.177.78.41
※ 编辑: tropical72 来自: 180.177.78.41 (09/24 14:27)