为什么 Excel 换行符无法传输到记事本?

为什么 Excel 换行符无法传输到记事本?

在 Excel 中复制带换行符的单元格并将其粘贴到记事本中时,文本会粘贴到一行上。这是为什么?

答案1

这是由于电子表格的工作方式所致。假设您有一个充满数据的电子表格。如果您要复制整行数据,然后将其粘贴到记事本中,则所有数据都需要在一行上。这是因为如果您要复制另一行数据并粘贴,下一行数据需要在一行上。如果您复制的第一行中有换行符,则数据将不再是两个线性行。如果您将数据从记事本复制回电子表格,则无法正确粘贴。

答案2

当您使用记事本时确实如此,记事本是 Microsoft 的基本文本编辑器,已预装在 Windows 中。

但是,您可以使用更高级的文本编辑器,例如 PSPad 或 Notepad++(都很出色,而且免费),并且可以转移换行符。

Excel

Excel

标记单元格,然后复制粘贴到记事本++

记事本++

相同的内容粘贴到记事本(Windows 默认编辑器):

WindowsNotpad

请注意,在这两种情况下,引号都是自动添加的!

更好的编辑器还为您提供了显示控制字符(如换行符 (LF) 和回车符 (CR))的选项。在 Notepad++ 中,它看起来像:

Notepad++带控制字符

结论是:根据您的需要选择工具。如果您需要在编辑器中保留单元格边界,但单元格内容可能会发生一些变化,请使用记事本。如果您需要保留单元格内容(包括换行符),并且单元格边界的 1:1 可重复性并不重要,请使用其他编辑器。

大规模处理此类数据

如果您需要同时以 1:1 的比例保留单元格边框和单元格内容,则可能会遇到问题。

可能有更智能的解决方案,但在这种情况下,我所做的是用任何语言(VBA、Python 或任何您最喜欢的语言)编写一个小程序,读取内容并为换行符添加占位符字符串(简单如“###Linebreak###”,稍后可以用 CR 和 LF 控制字符重新替换。当然,这是繁琐的工作,只有当您必须处理大量数据时才有意义。

您可能还会遇到添加引号的问题。乍一看,这些引号可能有助于保留单元格边界,即使包含换行符也是如此。但是,您的单元格可能将引号作为原始内容的一部分,然后您就会遇到新的问题。对此有多种解决方案,但需要您注意。

答案3

克尔塔里回答给出了逻辑推理,而这个答案则侧重于技术差异。

计算中使用三种不同的换行符:

  • Unix 和 macOS 10.0+ 的行尾使用换行符 ( LF)
  • Macintosh(macOS 10.0 之前)行尾使用回车符 ( CR)
  • Windows 行尾使用回车符和换行符的组合 ( CRLF)

这是打字机的工作方式的保留。

Excel 使用这些换行符的组合来表示具有多行的单元格:

  • 单元格之间由字符分隔Tab
  • 行与行之间由字符分隔CRLF
  • 多行单元格仅使用字符分隔每行LF

当您将工作簿保存为.txt文件并使用支持显示这些字符的文本编辑器打开它时,这一点变得明显。

Excel

记事本++

记事本仅将其CRLF作为换行符处理,并忽略LFCR本身。它们仍在文档中,但不会以任何方式显示。

笔记:来回粘贴时您不会看到这一点,因为 Notepad++ 会自动为您调整行尾,而常规记事本则不会。

答案4

Excel 使用 LF 来表示单元格中的换行符。记事本并不认为这是换行符,因为 Windows 通常使用 CRLF 来表示换行符。

Notepad++ 比相对简单的记事本更智能,因此也将 LF 解释为换行符。

相关内容