在Excel中转义CSV文件中的引号和分隔符

23

我尝试使用分号作为分隔符在Excel中导入CSV文件,但是某些列包含分号和/或引号。

我的问题是:我可以使用双引号来忽略特定字符串的分隔符,但如果字符串中有双引号,则它会忽略第一个双引号之后的分隔符,但不是整个字符串的分隔符。不知道是否清楚,这很难解释。

我将尝试用示例来说明:

假设我有这个字符串this is a;test:我在字符串周围使用双引号来忽略分隔符=>它有效。

现在,如果此字符串包含分隔符和双引号:我的技巧就不再起作用了。例如,如果我有字符串this; is" a;test:我在字符串周围添加的双引号会忽略第一部分(正确地忽略了this; is部分中的分隔符,但由于在后面有一个双引号,Excel不会忽略a;test部分中的下一个分隔符。

我尽力尝试讲得尽可能清楚,希望您能理解问题所在。


你可以将所有的双引号替换为一个字符,例如| = Chr(124),并在成功导入后恢复替换。 - Variatus
如果我理解正确的话,我应该用 CHAR(124) 替换所有的 " ?因此,Excel会将所有引号替换为 |,但是在Excel中如何反转它呢? - Whin3
2个回答

47

在读取CSV文件中的带引号字符串时,Excel将把所有双引号("")替换为单个双引号(")。

因此,"this; is"" a;test"会被转换为一个单元格,其内容为this; is" a;test

因此,请使用双引号对替换您字符串中的所有双引号。

当导出为CSV时,Excel将反转此过程。

这是一些CSV内容。

a,b,c,d,e
"""test1""",""",te"st2,"test,3",test"4,test5

导入Excel后,它的外观如下:

输入图像描述


-1

将您的Excel文件导入openOffice并导出为CSV(与Excel csv不同,使用“”转义列,utf8,逗号对“;”)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接