【问题标题】:Import txt file with line breaks into Excel将带有换行符的txt文件导入Excel
【发布时间】:2012-01-06 14:20:45
【问题描述】:

在导出到 Excel 时,我发现了以下问题。

如果您创建一个表格,其中一个单元格有换行符,并将文档另存为 txt 文件,它将如下所示:

"firstLine<LF>secondLine"<TAB>"secondColoumn"

当我在 Excel 中打开此文件时,换行符消失了,第一行只有一个值为 firstLine

的单元格

你知道是否可以保留换行符吗?

编辑:适用于 Excel2010。不知道其他版本的行为是否不同。

EDIT2:重现步骤:

  1. 打开空白 Excel 工作表
  2. 输入文本(第一列带换行符,第二列不重要)
  3. 另存为 Unicode 文本 (txt) // 所有其他 txt 都不能正常工作
  4. 关闭 Excel 文件
  5. 文件->打开
  6. 即将到来的对话框中没有任何变化。

excel 文件现在有 2 行,这是错误的。

【问题讨论】:

  • 我正在尝试重现您的步骤。你在哪里创建表?在 Excel 中?您将其保存为什么类型 - 文本(制表符分隔符)、MS-DOS 文本、Unicode 文本,还是其他?你是如何“打开”文件的?导入,拖放到Excel,还是去File &gt; Open
  • 你按Alt+Enter 来换行,对吗?
  • 这是正确的。如上所示,换行符保存为换行符。

标签: excel vba


【解决方案1】:

我终于能够解决问题了!耶:D

CSV:

德语 Excel 需要分号作为分隔符。逗号不起作用。

注意:仅当文件编码为 UTF-8 且文件开头带有 BOM 时才适用。如果是 ASCII 编码的逗号,则可以作为分隔符。

文本:

编码必须是 UTF-16LE。也需要制表符分隔。

重要: 如果您使用“文件->打开”对话框打开文件并“导入”它们,文件仍将显示不正确。将它们拖入 Excel 或双击打开。

【讨论】:

  • 但是,将导致 Excel 丢弃不包含任何非数字字符的单元格中的任何前导零。
【解决方案2】:

这不是问题 - 在预期行为的意义上 - 当您将文本另存为 UnicodeText (tab delimited) 时,这是固有的

如果您将文件保存为 unicode,然后

  1. 在记事本中打开
  2. 在 Excel 中导入

您会看到带有换行符的单元格被“”包围

下面的例子显示了两个换行符

  • A1 有一个使用 Alt+Enter 分隔的条目
  • B1 有一个使用公式 CHAR(10) 的 enry

图片还显示了记事本在保存的Unicode 版本上看到的内容

建议的解决方法 1- 手动方法

  1. 在 Excel 中,选择编辑>替换

  2. 单击“查找内容”框

  3. 按住 Alt 键,然后(在数字键盘上)输入 0010

  4. 用双管道分隔符替换

  5. 另存为 Unicode

  6. 然后在需要重新插入换行符时反转该过程

这可以在 VBA 中轻松完成

建议的解决方法 2 - VBA 替代方案

Const strDelim = "||"

Sub LBtoPIPE()
ActiveSheet.UsedRange.Replace Chr(10), strDelim, xlPart
ActiveSheet.UsedRange.Replace "CHAR(10)", strDelim, xlPart
End Sub

Sub PIPEtoLB()
ActiveSheet.UsedRange.Replace strDelim, Chr(10), xlPart
ActiveSheet.UsedRange.Replace strDelim, "CHAR(10)", xlPart
End Sub

【讨论】:

  • 感谢您的回答。不幸的是,我无法使用解决方法。我希望这是一个 Excel 错误或我的一些错误设置。在我看来,这种行为是错误的。如果我保存带有换行符的文件,它们在加载时应该仍然存在:/
  • @T3rm1 没有问题。我很好奇为什么你不能部署解决方法?
  • 这两种方法都要求用户做一些你通常认为它“应该工作”的事情。
猜你喜欢
  • 1970-01-01
  • 2014-11-19
  • 2010-09-25
  • 1970-01-01
  • 1970-01-01
  • 2013-01-17
  • 2021-02-23
  • 1970-01-01
  • 2021-08-09
相关资源
最近更新 更多