是等号的CSV有效吗?

我刚刚得到一个要处理的CSVinput文件,它在第一个分隔符之前有一个等号,并且想知道这个文件是否有效并且有任何用处。 示例(简化):

"2" "3" ="4" 

阅读这样的一些post后,我尝试了一个像这样的CSV:

 "2" "3" ="A1+A2" 

和:

 "2" "3" "=A1+A2" 

似乎Excel和LibreOffice都默默地忽略了引号之前的等号,并很好地将引号后的等号作为公式的标志。 不过,我找不到任何有关这方面的文件。

(对于Excel,此CSV需要以.txt扩展名保存,并使用control-O打开)

我倾向于在公开报价之前用等号标注CSV,因为在阅读这个文件时很容易处理这个错误,但是仍然想知道是否还有更多这样的说法。

这被Excel用来避免前导零的丢失。

例如,如果在csv文件中有这样一个字段: 0123456 ,则Excel会将其视为一个数字,并丢失前导零。

将它保存为="0123456"解决了这个问题。

使用"0123456"也无济于事,因为引号不是用来指示文本字段,而是用于在字段中转义可能的分隔符。

就像拥有sep=; 在第一行使Excel使用正确的分隔符, =""也是“非标准的”,或更好的: 特定于Excel ,因为没有真正的csv文件标准。

CSV没有官方标准。 正如它在逗号分隔值中所说的那样,

CSV文件格式的官方标准不存在,但RFC 4180为其许多方面提供了事实上的标准。

看看RFC 4180 ,一个字段被转义或不转义。 逃脱的领域有这样一个BNF定义:

 escaped = DQUOTE *(TEXTDATA / COMMA / CR / LF / 2DQUOTE) DQUOTE 

由于等号不是逃逸angular色的一部分,它可能就像“大富翁”中的“免费泊车”一样:规则对此没有任何规定, 事实上的标准是将500美元置于其下。

Excel不忽略= in ="4"="A1 + A2" ,它将其视为一个常量公式。

如果您打开如下所示的csv文件:

 "2" "3" ="4" ="A1+A2" "=A1+A2" 

在Excel中,结果如下所示:

在这里输入图像描述

请注意A3如何保持公式="4"而不仅仅是数字4。

如果您具有以下内容的.csv文件:

 "2" "3" ="4" 

并在Excel中打开它,你会看到:

在这里输入图像描述

如你所见。 Excel将放弃前两项中的双引号,并将第三项转换为公式。

这就是Excel的function。

如果你想获得确切的文本到Excel (保留双引号),你可以使用macros。