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


16

如果我在Excel中复制数据并将其粘贴到文本文件中,则在单元格之间会出现制表符。不好,我想要空格-并且我希望列对齐。我如何能不花很多力气就能做到这一点(显然,我不想手动开始运行正则表达式等)。

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


我有一个可能的解决方案,涉及从一个工作簿粘贴到另一个工作簿(然后从另一个工作簿粘贴到粘贴的任何地方。是否适合您的工作流程?
Pynner 2012年

@Pynner:嗯,总比没有解决方案要好,所以是的,继续吧。
einpoklum 2012年

Answers:


14

这当然不容易解释...但是设置完成后,将花费很少的精力。而且这与@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行

(编辑),您可以从空格插入标签复制。

记事本


1
精心设计!
einpoklum 2012年

但是...为什么我真的需要最后一张纸?我可以从第三张纸上粘贴。另外,我不想为每列使用任何重复的长公式。
einpoklum 2012年

完全正确..不需要最后一个选项卡...我已经假定单元格将插入其他字符。我将更新我的答案以解决此问题
Pynner

很好的答案,非常感谢。就我个人而言,我的一些专栏文章发表得很长,因此我添加了一个页面,其中包含“ = LEFT('space insert'!A1,$ K $ 2)&IF(Length!A2> $ K $ 2,“ ... |”, “ |”)“,其中$ K $ 2设置为适当的值(最重要列的最大值)。这适用于描述等,下一步包装:p
chrispepper1989

下一步将是数字的正确对齐
vlad_tepesch'1

3

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

数据

单元格A1:247

单元格B1:19

单元格C1:1437

单元格D1中的公式

= A1&“,”&B1&“,”&C1

文字可贴结果

247,19,1437

还有另一种不依赖公式的方法。

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

这种替代方法的好处是可以保留数据的格式。如果要对数据进行逗号格式化,或仅显示一位小数,则格式将保留在prn文件中。


1
建议改善是完全正确的。我已经用另一个使用另存为的替代方法更新了答案。
chuff 2012年

因此,就像我在问题中说的那样,另存为不是一种选择。REPT解决方案可以与复制粘贴一起使用吗?另外,我还不接受,因为我想减少麻烦。
einpoklum 2012年

0

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

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

抱歉,这无法满足我的要求-列宽会有所不同。
einpoklum 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.