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

154

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

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

我也尝试用CR/LF (\r\n)替换为只有CR (\r),再用只有LF (\n),但是没有成功。

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

TIA,
-J

编辑:
这里是我手动编写的快速文件,用于复制该问题。

  

ID,Name,Description
  "12345","Smith, Joe","嘿。
  我叫乔。”

当我将其导入Excel 2007时,我得到一个标题行和两个记录。请注意,"Smith, Joe"中的逗号被正确处理。只有换行符会导致问题。


我已经在Notepad++中查看了CSV文件,一切似乎都是正确的。我有其他带逗号的字段,它们被正确导入了。只是换行符引起了问题。 - jeremyalan
7
我对包含多行数据的UTF8 .csv文件和Excel存在问题。最终我只能将文件上传至Google文档,然后在Google表格中打开并下载为.xls文件。这样对我来说效果很好。 - creuzerm
25个回答

0

在Mac上可以使用csv并在Excel中打开文件。

使用Python编写csv文件。

数据=“单元格a1第一行\r单元格a1第二行\r单元格a1第三行”,“单元格b1”,“单元格c1第一行\r单元格c1第二行”\n“单元格a2第一行”\n”

file.write(data)


0
在我的情况下,使用记事本++打开CSV文件并在第一行添加SEP=","可以让我在Excel中无问题地打开带有换行符和UTF-8编码的CSV文件。

0
我也遇到了这个问题:即csv文件(逗号分隔,带双引号的字符串)在引号字符串中有LF。 这些是下载的方格文件。 我进行了数据导入,但是没有将其作为文本文件导入,而是导入为“从HTML”。 这次它忽略了引号字符串中的LF。

0

对于我来说刚刚起作用的是直接将数据导入Excel,前提是以文本格式而不是csv格式进行导入。


0

将分隔符从逗号(,)替换为TAB(\t)。 然后在您的编辑器(记事本等)中打开文件,从那里复制内容,然后将其粘贴到Excel文件中。


尝试在大文件上运行这个程序 :) - chukko

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