制表符分隔文本的复制粘贴会导致 Excel 中出现奇怪的格式?

Posted

技术标签:

【中文标题】制表符分隔文本的复制粘贴会导致 Excel 中出现奇怪的格式?【英文标题】:copy paste of tab delimited text results in strange formatting in Excel? 【发布时间】:2014-12-29 18:07:38 【问题描述】:

我的源文件是一个制表符分隔的文本文件 (*.txt)。我正在从 *.txt 复制粘贴到空白 *.xlsx 工作簿。我的计算机上安装了 Microsoft Office Excel 2010。我的电脑上安装了记事本++。

制表符分隔的文本文件是使用“\t”制表符将数值分隔到列中的普通文本文件。示例:

0   0   0.5528369
0   1   0.0
1   0   0.1230636
1   1   0.0
1   0   0.2113225
1   1   0.0
3   0   0.0752651
3   1   0.0

使用相同的示例,这里是显示源文件中字符的屏幕截图:

问题 #1:从文本文件复制粘贴到工作表后,excel 删除选项卡,将每一行文本压缩在一起,例如:

作为一种解决方法,我使用 Notepad++ 中的文本替换功能将源文本中的每个选项卡替换为逗号。此操作的结果如下所示:

0,  0,  0.5528369
0,  1,  0.0
1,  0,  0.1230636
1,  1,  0.0
1,  0,  0.2113225
1,  1,  0.0
3,  0,  0.0752651
3,  1,  0.0

使用逗号复制/粘贴到此版本的 Excel 后,我现在可以执行 Excel 功能 Data->Text-to-columns。但是,这也存在问题。

问题 #2:粘贴到 excel 中的文本副本不被视为数字。将数据类型从 General 切换到 Number 不起作用。它仍然是文本。仔细检查后,Excel 似乎在每个数字的末尾添加了空格,这使其无法将其识别为数字。例如:

目前我不得不手动编辑 excel 中的每个单元格以删除多余的空白,这使我能够将类型设置为数字。

这两个问题都源于执行微不足道的复制粘贴操作,我不知道为什么会发生这些问题或如何以直接的方式解决它们。我想如上所述将粘贴复制到 excel 中而不会出现任何问题。

【问题讨论】:

你能在 Notepad++ 中检查你是否有尾随空格吗?我通常将制表符分隔的数据复制粘贴到 Excel 中没有问题...您也有哪些区域设置? @pnuts:源文件还有许多其他非制表符分隔的数据行,使用 Get External Data 导入文件导致我不得不执行清理操作以删除多余的行.由于涉及人工劳动,因此不是理想的解决方案。 @captain:没有尾随空格。我用屏幕截图编辑了我的 OP,显示了隐藏的字符,包括标签。你可以看到每一行都以回车和换行结束,但没有空格(空格会显示为一个橙色的小点,这是notepad++“显示所有字符”功能的一个特点) 这是一个新的、“干净”的 Excel 文件吗? 【参考方案1】:

此解决方案解决了这两个问题。

虽然文本被压在一起,如 OP 所示,制表符仍在字符串中。话虽如此,解决方案是:

1) 复制粘贴到单元格 A1 中(文本会挤在一起)

2) 选择 A 列

3) 选择 Data->Text-to-columns 并在对话框窗口中选择制表符分隔格式

4) 点击完成

5) 选择 A->C 列中的数据并将类型从 General 更改为 Number。

Excel 设计为将文本压缩在一起的原因并不明显。这给人一种误导性的印象,即制表符已被剥离。但是,制表符在那里。此外,在应用 text-to-columns 后,每个单元格中的值现在可以从 General 转换为 Number 类型而不会出现问题(末尾没有添加空格)。

【讨论】:

我发现如果我将数据粘贴到notepad++中,然后从notepad++中重新复制数据并粘贴到excel中,我会得到预期的数据行为到多列中。【参考方案2】:

此解决方案避免了使用文本到列

我遇到了同样的问题。我正在将数据输出到<pre> 标签内的浏览器。我也在数据列之间使用\t。当我粘贴到 excel 中时,所有内容都进入一列。

我将数据粘贴到 notepad++ 中以确保选项卡位于所有列之间,而且确实如此! 然后我从 notepad++ 中复制数据并将其粘贴到 excel 中,结果按预期工作!

注意:你可以使用普通的记事本并获得相同的效果


更好的解决方案,发现 here,您可以将数据输出到 <textarea>,然后从中复制。可以找到 here 的原因,以及对实际情况的解释。

【讨论】:

以上是关于制表符分隔文本的复制粘贴会导致 Excel 中出现奇怪的格式?的主要内容,如果未能解决你的问题,请参考以下文章

如何上传Excel直接读取里面的数据,不用鎒xcel文件后再读取

如何将制表符分隔的文本文件导入 Excel?

如何将R语言中的表格数据输出为Excel文件

excel保存为制表符分隔的文本文件 js无法完整读取

如何将excel的数据输出到文本文件中并设定长

使用 LibreOffice 的 'scalc' 从命令行将制表符分隔的文本转换为 Excel