在 Excel 2007 中导入带换行符的 CSV

我正在开发一项功能,将搜索结果导出为 CSV 文件,以便在 Excel 中打开。 其中一个字段是自由文本字段,可能包含换行符、逗号、引号等。 为了解决这个问题,我用双引号 (") 将字段封装起来。

但是,当我将数据导入 Excel 2007,设置适当的分隔符,并将文本限定符设置为双引号时,换行符仍会在换行处创建新记录,而我本希望在单个单元格中看到整个文本字段。

我还尝试只用 CR (\r)替换 CR/LF (\r\n),并再次只用 LF (\n)替换,但都没有成功。

有没有其他人遇到过这种情况,如果有,你是如何解决的?

TIA,<br&gt; -J

编辑:<br&gt; 这是我手写的一个快速文件,用来复制这个问题。

ID,Name,Description<br&gt; "12345","史密斯,乔","嘿<br&gt; 我叫 Joe";

当我把这个数据导入 Excel 2007 时,结果只有一个标题行和两条记录。 请注意,"Smith, Joe" 中的逗号已被正确处理。 只是换行符造成了问题。

没有一个建议的解决方案对我有用。

实际有效的方法是(使用任何编码):

从 csv 文件复制/粘贴数据(在编辑器中打开),然后执行 "text in columns" -->。

转到下一个选项卡,再次复制/粘贴(与剪贴板中已有的内容相同)--> 现在自动起作用了。

评论(10)
解决办法

我终于找到了问题所在!

原来,我们在编写文件时使用的是 Unicode 编码,而不是 ASCII 或 UTF-8。 更改 FileStream 上的编码似乎解决了问题。

谢谢大家的建议!

评论(6)

如果字段包含前导空格,Excel 会忽略作为文本限定符的双引号。 解决方法是消除逗号(字段分隔符)和双引号之间的前导空格。 例如

Broken:

评论(2)