Rol*_*and 5 csv excel excel-formula
我刚刚得到一个要处理的CSV输入文件,它在第一个分隔引号之前有一个等号,并想知道这是否有效并且有任何用途.示例(简化):
"2"
"3"
="4"
Run Code Online (Sandbox Code Playgroud)
在阅读了一些像这样的帖子后,我尝试了这样的CSV:
"2"
"3"
="A1+A2"
Run Code Online (Sandbox Code Playgroud)
和:
"2"
"3"
"=A1+A2"
Run Code Online (Sandbox Code Playgroud)
似乎Excel和LibreOffice默默地忽略引号之前的等号,并且很好地将引号后面的等号视为公式的标志.但是,我找不到任何关于此的文档.
(对于Excel,此CSV需要使用.txt扩展名保存,并使用control-O打开)
我倾向于在打开引号之前使用等号来调用CSV作为在阅读此文件时易于处理的错误,但仍然想知道是否还有更多关于此的说法.
Excel使用它来避免丢失前导零.
例如,如果csv文件中有一个字段,如下所示:0123456Excel会将其视为一个数字并丢失前导零.
保存它可以="0123456"解决这个问题.
使用"0123456"也无济于事,因为引号不是指示文本字段,而是为了逃避字段内的可能分隔符.
就像sep=;在第一行使Excel使用正确的分隔符一样,=""它也是"非标准"或更好:特定于Excel,因为csv文件没有真正的标准.
Excel 不会忽略=in="4"或="A1 + A2",而是将其视为常量公式。
如果您打开如下所示的 csv 文件:
"2"
"3"
="4"
="A1+A2"
"=A1+A2"
Run Code Online (Sandbox Code Playgroud)
在 Excel 中,结果如下所示:
注意A3公式="4"是如何成立的,而不仅仅是数字 4。
CSV 没有官方标准。正如它所说的逗号分隔值,
CSV 文件格式的官方标准不存在,但 RFC 4180为其许多方面提供了事实上的标准。
查看RFC 4180,一个字段要么是转义的,要么是非转义的。转义字段具有如下定义的 BNF:
escaped = DQUOTE *(TEXTDATA / COMMA / CR / LF / 2DQUOTE) DQUOTE
Run Code Online (Sandbox Code Playgroud)
由于等号不是转义字符的一部分,它可能就像大富翁中的“免费停车”:规则对此没有说明,但事实上的标准是在其下放置 500 美元。