如何将 Excel 数据粘贴为等宽文本?

如何将 Excel 数据粘贴为等宽文本?

如果我将 Excel 中的数据复制并粘贴到文本文件中,单元格之间会出现制表符。这不好,我想要空格 - 并且我希望列对齐。我怎样才能不费吹灰之力就实现这一点(显然我不想手动运行正则表达式等)。

使用“另存为”(如这个问题) 对我来说不是一个解决方案,我需要复制和粘贴。

答案1

这当然不易于解释……但设置后,它只需很少的努力就能发挥作用。这也是 @pnuts 所概述的略微变化

我建议使用可以复制粘贴的模板电子表格。我创建的模板有 3 个选项卡,如下所示。

标签

  • Data选项卡是粘贴数据的地方
  • Length将进行一些计算来确定最长的列
  • Space insert将插入适当数量的空格(编辑)您可以从这里复制并获得正确的结果

长度标签看起来像

长度

第 1 行包含以下列的最大字符数,并包含公式

=MAX(A2:A101)+1

+1 创建分隔符。

第 2 行至第 n 行(在本例中我将其扩展到 100)包含一个公式来计算每个字符串的长度

=LEN('Data tab'!A1)

空间插入标签看起来像

空间插入

每个单元格包含一个单元格,用于评估其自身的长度与最大值(+ 分隔符)进行比较,并插入适当数量的空格。

='Data tab'!A1&REPT(" ",length!A$1-length!A2)

注意,如果你复制并粘贴公式,$ 会锁定第 1 行

(编辑)您可以从空间插入选项卡复制。

记事本

答案2

最简单的解决方案是将数字数据连接成一个“压缩”字符串,然后将其正确粘贴到文本文件中。为一行创建 Excel 公式,然后将其复制到工作表中的所有行,然后复制公式列并将其粘贴到文本文件中。例如,

数据

单元格 A1:247

单元格 B1:19

单元格 C1:1437

单元格 D1 中的公式

=A1&","&B1&","&C1

可粘贴文本的结果

247,19,1437

另一种方法不依赖于公式。

  • 首先,确保您的数据列的宽度全部相同。
  • 然后在每对数据列之间插入另一列,每列的宽度为 2。
  • 在插入的每一列中输入一个逗号,并将其沿着数据长度复制。
  • 最后,将工作表保存为格式化文本(空格分隔)(*.prn)文件。

此方法的一个好处是可以保留数据的格式。如果您希望将数据设置为逗号格式,或者只显示一位小数,您的格式将保留在 prn 文件中。

答案3

您可以在 Word 中复制数据,然后使用“查找和替换”(Ctrl+H)将制表符替换为空格。

  1. 在 Word 中打开并粘贴数据
  2. Ctrl+H
  3. 更多 >>
  4. 特别的
  5. 白色空间
  6. 在替换处放置一个空格:
  7. 全部替换

答案4

使用开源软件 R 和 R Studio,可以使用 datapasta R 包将 Excel 中的数据粘贴到数据框中。然后使用 knitr R 包中的 kable 函数 a la knitr::kable(pasted_dataframe),将提供的表格整齐地粘贴到记事本或类似程序中。

安装软件后,这是一个非常快的过程。 在此处输入图片描述

相关内容