【问题标题】:Difference between Excel .csv and plain .csv?Excel .csv 和普通 .csv 之间的区别?
【发布时间】:2014-08-13 13:46:08
【问题描述】:

我正在运行 Windows 7 并安装了 MS Office。每当我下载 .csv 文件时,“另存为...”对话框中的“文件类型”行默认为“Microsoft Office Excel 逗号分隔值文件”。 实际上是否存在不同于“普通”.csv 的 Microsoft 特定格式?

谷歌搜索相关术语会返回各种令人难以置信的无信息页面,例如this one。是否有任何信息丢失或获得,或者使用此格式而不是仅将文件视为 .csv 以不同方式编码,符合general standards

【问题讨论】:

  • 很遗憾,there is no "plain .csv",所以你的问题是基于不合理的。
  • @hyde 我的意思是“符合 RFC4180 中的约定”,正如我的第二段所暗示的那样。问题是通过知道文件是否为 Excel .csv 类型是否可以获得任何信息。
  • 在 RFC4180 发布一段时间后,Excel 已兼容

标签: excel csv file-type


【解决方案1】:

是的,几乎可以肯定存在差异。 从我的脑海中浮现:英文 Excel 使用“,”作为分隔符。德语语言环境使用“;”作为分隔符,如果要导入带有逗号分隔符的 csv,则需要额外的导入步骤。这不是德国语言环境所独有的,大约 1/4 到 1/3 的世界使用“;”。

此外,转义字符串的复杂程度(文本中的; 和“)可能会有所不同,这可能因程序而异。 这并不是什么大错特错,因为 csv“格式”并没有真正标准化,并且有无数程序正在滚动自己的 csv 解析器,这会导致各种问题,因为他们忘记处理极端情况。

我曾经读过评论说 csv 是数据交换格式的瘟疫,因为它很难做到正确。我完全同意,我必须每天与他们打交道,与他们一起工作非常烦人。 开源爱好者会因此讨厌我,但我认为 csv 是数据交换的糟糕选择,甚至 xlsx 更好,因为它具有明确定义的规则。

【讨论】:

  • 不是“;”与“,”分隔符是我正在使用的任何程序中的参数集问题,而不是程序之间的区别?或者您是说 Excel 的默认设置为“,”与位置无关?
  • @WAF 这取决于:( 在 excel 中,除非您更改系统的区域设置,否则无法更改分隔符。其他程序可能默认为他们选择的任何内容,也许会给您一个选项。请记住,csv 可以代表“逗号分隔文件”或“字符分隔文件”。
  • 谢谢,我以前没有意识到这一点。无论如何,我一直更喜欢空格分隔。我只是碰巧有一个需要解析 CSV 的应用程序。
【解决方案2】:

发生了两件事。缩写(和后缀)“CSV”可以表示字符分隔的值,也可以表示逗号分隔的值。 “Microsoft Office Excel 逗号分隔值文件”是一种消歧义,表示一条记录中有多个值,字段值之间用逗号分隔。

逗号分隔的值文件中的值本身可能包含逗号,如果它们被正确地分隔(引用)。通常,stropping 是在部分或全部字段周围加上双引号。

MS Excel 还支持字段中间的换行符,再次被正确删除。

【讨论】:

  • 按照 BobD CSV(字符分隔值/逗号分隔值)。 Excel 使用区域和语言>>自定义格式>>“列表分隔符”字符作为分隔符。它默认为逗号,但可以更改为任何字符。
  • Excel 似乎在所有方面都符合 RFC4180,至少对于 ASCII 数据,我似乎记得 UTF-8 存在一些问题,但可以通过使用以“BOM”开头。
猜你喜欢
  • 1970-01-01
  • 2011-06-16
  • 2011-09-07
  • 2019-02-10
  • 2015-01-06
  • 2015-07-26
  • 2015-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多