我正在开发一个功能,可以将搜索结果导出到CSV文件中,以便在Excel中打开。其中一个字段是自由文本字段,它可能包含换行符、逗号、引号等。为了抵消这一点,我用双引号(")将该字段括起来。
但是,当我将数据导入Excel 2007,设置适当的分隔符,并将文本限定符设置为双引号时,换行符仍然在换行处创建新记录,而我希望在单个单元格中看到整个文本字段。
我还尝试用CR (\r)替换CR/LF (\r\n),然后再用LF (\n)替换,但没有成功。
其他人遇到过这种行为吗?如果有,您是如何修复它的?
蒂娅
-J
编辑:
这是我手动编写的一个快速文件,用于复制该问题。
ID、名称、描述
"12345",“史密斯,乔”,“嘿
我叫乔。“
当我将其导入Excel2007时,我得到了一个标题行和两条记录。请注意,"Smith,Joe“中的逗号正在正确处理。这只是换行符造成的问题。
发布于 2010-06-22 06:59:54
我终于找到问题所在了!
事实证明,我们使用的是Unicode编码,而不是ASCII或UTF-8。在FileStream上更改编码似乎可以解决这个问题。
感谢大家的建议!
发布于 2014-03-20 19:43:09
Excel (至少在XP上的Office 2007中)的行为可能会有所不同,具体取决于CSV文件是通过从文件->打开菜单打开还是通过在资源管理器中双击该文件来导入的。
我有一个UTF-8编码的CSV文件,在一些单元格中包含换行符。如果我从Excel的文件->打开菜单打开这个文件,弹出“导入CSV”向导,文件不能正确导入:换行符开始一个新的行,即使加了引号。如果我通过在资源管理器窗口中双击来打开此文件,则它将正确打开,而无需向导干预。
发布于 2013-09-17 20:27:36
建议的解决方案对我来说都不起作用。
实际工作情况(使用任何编码):
从csv-file (在文本编辑器中打开)复制/粘贴数据,然后执行"text to columns“-->数据转换不正确。
下一步是转到最近的空列或空工作表,并再次复制/粘贴(与剪贴板中已有的内容相同) -->现在自动工作。
https://stackoverflow.com/questions/2668678
复制相似问题