如何让 Excel 导入某些内容字段带有逗号的 CSV 文件?

如何让 Excel 导入某些内容字段带有逗号的 CSV 文件?

如何让 Excel 导入我的CSV文件?

文件

我有一个自称是 CSV 的文件。它包含 10 个字段,所有字段都用双引号括起来(是的,甚至包括日期和数字)。其中 2 个或 3 个字段包含逗号。但这些字段中的数据也被引号包围。

问题

当我尝试打开此文件时,Excel 完全忽略引号并假定它们是数据的一部分。

因此,它将包含逗号的字段分成多列。

这很糟糕,至少对我来说。

示例数据

“20051”, “”, “2009 年 9 月 30 日 02:53:23”, “SOMETEXT”, “”, “5000”, “2000000”, “2008 - 99999 - -99999, 2008 - unk - unk”, “191 - SOMETEXT - SOMETEXT, 192 - SOMETEXT - SOMETEXT, 193 - SOMETEXT - SOMETEXT, 194 - SOMETEXT - SOMETEXT, 195 - SOMETEXT - SOMETEXT, 196 - SOMETEXT - SOMETEXT”, “45 - SOMETEXT - SOMETEXT, 1162 - SOMETEXT - SOMETEXT, 140 - SOMETEXT - SOMETEXT, 141 - SOMETEXT - SOMETEXT”
“20052”、“SOMETEXT”、“2009 年 9 月 8 日 07:56:50”、“SOMETEXT”、“”、“”、“50000”、“5000000”、“2007 - 99999 - 99999”、“146 - SOMETEXT - SOMETEXT、145 - SOMETEXT - SOMETEXT、147 - SOMETEXT - SOMETEXT、148 - SOMETEXT - SOMETEXT”、“103 - SOMETEXT - SOMETEXT、1131 - SOMETEXT - SOMETEXT”

我尝试过什么?

我已经使用导入功能来指定分隔符等,但这似乎没有帮助。

我尝试将“文本分隔符”从双引号切换为“{none}”,然后再切换回来。这似乎只影响第一列。如果可以单击其他列并将此设置应用于每列,这将是合理的。但事实并非如此,这似乎是跨列工作的。

我还可以尝试什么?

答案1

我刚刚尝试了一个快速测试,复制了您的问题。

我在 Word(使用智能引号)中创建了一个 1 行 CSV,即 test.csv“123”,“4,5,6”,然后按照您的描述在 Excel 中打开它。

尝试将“ 和 ” 替换为“


玩过你的示例后,我注意到 Excel 不喜欢字段之间的空格

例如代替

"20051", "", "2009 Sep 30 02:53:23", ...

你要

"20051","","2009 Sep 30 02:53:23",...

一个像样的正则表达式替换应该能够处理它

Find:    |("[^"]*",) |
Replace: |\1|

(管道字符仅用于视觉提示)

或者如果您有权访问的话,只需修改.Net 代码即可;-)

另外,正如 Arjan指出,您可能还需要将文件从 UTF-8 转换为 ANSI,以防止单元格 A1 包含 BOM 及其周围的引号。

我遇到了 ANSI 编码的 CSV 无法处理国际字符,而 Excel 无法正确处理 UTF 编码的 CSV 的问题;在维护 CSV 时,我找不到解决方案。如果需要国际字符支持,XML(或原生 XLS)格式似乎是唯一的选择——但代价是牺牲了简单性。

答案2

这个问题困扰了我好几年了。我刚刚找到了解决办法,上面的答案中提到了这个问题,但没有明确说明。

它是逗号后面的空格!

这不能导入到 Excel 中;

HEADER1, HEADER2
"1,000", "2,000"

尽管

HEADER1,HEADER2
"1,000","2,000"

作品!

答案3

你也可以尝试 冠状动脉血管造影它是免费的。

答案4

您是否检查过文件的字符编码?尝试将字符编码设置为 UTF-8。

您可以使用记事本2改变字符编码。

相关内容