如何从Excel复制多行文本而没有引号?


71

当您在excel单元格中创建多行字符串时(使用Alt-Enter),如果将该单元格复制到文本编辑器中,则excel将自动在整个字符串周围添加双引号(“),即:

Cell1  |   Simple String 1 
Cell2  |   First line of a 
       |   Multiline string
       |   with 3 lines 
Cell3  |   Another simple line 2

当您仅将具有值的列复制到文本编辑器时,我们得到:

Simple String 1
"First line of a 
Multiline string
with 3 lines"
Another simple line 2

从excel复制时,如何告诉excel不要在多行文本周围添加引号?


编辑:我尝试过的文本编辑器显示此行为:

  • MS Word
  • 写字板
  • 记事本
  • 记事本++
  • SQL Server Studio

如果您对使用特定的编辑器(或上述编辑器之一)有任何建议,请告诉我哪个编辑器和如何使用...


4
物有所值是因为Excel 尝试输出有效的CSV。如果这很容易改变,我会感到惊讶。
slhck 2011年

@slhck我希望您错了(虽然这是一个很好的答案!),因为能够告诉excel我没有复制到csv是非常有用的……
Andrew Bickerton

3
这很烦人。Excel没有正当理由在包含回车符的文本周围加上引号。
振荡cretin

1
Google Spreadsheets做同样令人讨厌的事情。我正在尝试将几个数据单元格复制到文本文件中,但是Google Spreadsheets会将引号添加到数据中-引号不在源数据中。对我来说,这是一个错误,而不是功能。
强尼(Jonny)2012年

有一个使用VBA的答案发布在这里:stackoverflow.com/a/24913557/976210这对我来说效果更好,因为我不想使用中介程序。
杰森·约翰逊

Answers:


20

如何将文本复制到Word中取决于选择的格式设置选项。在Word 2010中,默认格式选项为HTML Format。如何将文本复制到Word中有四个主要选项。(Formatted Text (RTF)Unformatted TextHTML Format,和Unformatted Unicode Text

粘贴带格式的文本会在Word中创建迷你表。(蓝色轮廓。)

粘贴特殊选项

要在Word中获取不含双引号的未格式化文本,请执行以下操作:

  1. 以格式化的格式粘贴文本,以便创建表格。
  2. 选择表并复制它。
  3. 移动到空白处,然后将新副本粘贴为未格式化的文本。(Alt + ES

这也可以将不带引号的结果粘贴到另一个编辑器中。只需更改步骤3以粘贴到其他编辑器中即可。

但是,简单地按常规粘贴然后使用“替换”查找并删除所有双引号可能会更快。


+1不错的答案以及解决问题的技巧!(很遗憾,对于我正在处理的块,我想保留有效的双引号)
Andrew Bickerton,2012年

+1这些愚蠢的事情确实让我想寻找其他办公产品。也许是明星办公室之类的。感谢您的把戏
自行车

22

如果将范围从Excel(2010)复制到Word,则将根据需要获得文本,并提供免费引号。然后,您可以将其再次复制到其最终目的地,例如记事本。Excel-> Word->记事本将为您提供所需的结果。


当您与其他单元格一起复制时,Word确实会显示此行为(如问题中所述)。还是他们在Office 2010中进行了排序?
安德鲁·比克顿

2
到目前为止,这可行。但是,我必须使用Word 2010作为中间人来删除引号,这太糟糕了。
振荡cretin

这也适用于Mac Office 2011。
Lewis42

3

我发现的最简单的方法是,将要在多行中的单元格连接起来,并在它们之间添加一些“特殊”字符,而不是cr / lf。蒂尔德通常对我来说很好。例如,在G列中:

=E1&"~"&F1
=E2&"~"&F2
...

在此示例中,最终目标是获得一个文本文件,其中一行中包含E1的值,然后在新行中包含F1,然后是E2,F2等。值,仅包含〜,用于换行符。

然后在记事本++中获取多行文本文件

  • 剪切并粘贴到记事本++
  • Ctrl-H打开替换对话框
  • 确保选择“扩展”搜索选项
  • 将所有〜替换为\ n(或根据需要替换为\ r \ n)

作为开发人员,我喜欢这个,因为它不需要像Word这样的第三种工具。
VSB

2

这不是Excel的问题。就像上一个海报所说的那样,它只是输出有效的CSV数据。格式化后,由编辑器决定。我建议您使用比记事本更智能的工具...您可以将MS Word用作从Excel到除word之外想要使用的任何文本编辑器的中介。


2
我确实使用了记事本以外的东西……Word也做同样的事情(用“ s”粘贴该单元格)
Andrew Bickerton

具有默认设置的Word 2010可以很好地工作。
亚当·里奇科夫斯基

我昨天发现了这个。我同意安德鲁·比克顿的看法。我不想复制CSV,我想复制文本。Excel至少应询问。由于我的文本包含大约2000个SQL插入内容,因此使用PsPad可以更轻松地解决它。尽管很容易,但这完全是不必要的。
alvaroc

1

我遇到了同样的问题,并使用了以下步骤(我使用的是Office 2007,但我认为它也适用于更高版本):

  1. 选择了包含要从Excel中粘贴到另一个编辑器中的多行文本的单元格范围,然后选择“复制”。
  2. 在Word 2007中,我将复制的单元格范围粘贴为表格。
  3. 选择表格。
  4. 在版式选项卡上,选择选择表。
  5. 在数据部分中,选择“转换为文本”,然后选择“段落标记”。

结果是原始表转换为文本,每行的末尾都有换行符,而每个单元格的最后一行的末尾都有段落标记。


1

您可以将Excel文档另存为网页,然后从网页中复制文本。这对于单列数据效果很好,但是请确保将列的宽度设置为文本的宽度,否则会增加换行符。


1

我今天遇到了这个问题,因此以为我会发布答案,以防万一仍然有人卡在上面。

您可以通过突出显示单元格来解决此问题,然后单击并手动突出显示所有代码,直接将代码直接复制并粘贴到顶部的文本栏中。

我只是在Excel 2010中完成了此操作,所以我不知道这是否适用于早期版本。


尽管我必须将其中装有CONCAT(A1:A100)公式的单元格和“选择性粘贴”到第二个单元格中,然后才能从您描述的文本框中选择所有内容,这还是完美的
nvuono

1

不能将其准备为CSV文件,因为它们非常愚蠢,非常复杂,以至于顶部和尾部的单元格包含非打印字符并带有引号,而对于包含逗号的单元格则没有相同的功能(它不会')。

无论如何。当我尝试从名字,姓氏,地址行1 ...字段创建地址标签时遇到了此问题:

=A1&" "&B1&CHAR(13)&CHAR(10)&C1&CHAR(13)&CHAR(10)&D1

CHAR(13)CHAR(10)当使用十六进制编辑器查看文本文件时,其后为新段落。

解决这个烦恼的方法是:

  • 复制单元格/列并将其粘贴到Word中。
  • 使用剪贴板符号下拉菜单(页面左下方或粘贴的文本)选择“ 仅保留文本”
  • 选择粘贴的文本。仅当文档包含其他可能受影响的内容时,才需要这样做
  • 点击Ctrl+ H弹出“ 查找和替换”对话框。
  • 查找内容字段中输入:("^p"所有四个字符)。
    您可能必须先转到“工具”->“自动更正”选项,然后再选择两个“自动套用格式”选项卡,以确保它不会更改您的直引号)
  • 在“ 替换为 ”字段中,输入:^p(2个字符)
  • 现在点击“ 全部替换”按钮
  • 最后,您将必须手动删除导入块的开头和结尾的双引号

这是基于Office 2003的,因此您的Microsoft Word版本可能会略有不同。


0

我使用了该CLEAR功能,并且对我有用。

将要复制的单元格放入CLEAR,例如:

=clear(A1)

A1您要复制到记事本的数据的单元格在哪里(不带引号)。


15
我想你的意思是CLEAN。(至少在Excel 2010中。)但是,这将删除换行符,并且他的第二句话将不再是多行。
mischab1 2012年

0

我知道这是一个老话题,但是我的解决方案是按照建议使用CLEAN,复制这些单元格并将值粘贴回工作表中。这样,我可以将文本编辑为最终结果,然后将单元格复制并粘贴到不带引号的文本文档中。

我认为先清理文本然后再进行最终格式化将很可能起作用(至少对我而言是如此)。


2
需要注意的一件事是,我相信“ Clean”方法也会删除回车符,并且过去的结果不会是多行。

0

遇到了同样的问题,最后很容易解决了。我有600行详细的产品说明。为了解决这个问题,我做了以下工作:

1)选择整个列,然后单击“自动换行”。

2)保持选中该列,再次单击“自动换行”(以使文本100%不自动换行)。

PRESTO-完美复制出每个单元格的文本,不带引号(即使它们是长段落)。

默认情况下,Excel将引号添加到任何多行文本中。因此,上述过程提供的简单解决方案是确保带有长文本的单元格不会自动换行。

可能值得一提的是,在执行此操作之前,这些单元看起来正常并且没有被包裹。我认为上述“告诉” Excel的过程不会将任何单元格解释为“多行”文本,即使它是一个较长的段落,也解决了“ Excel在复制文本中添加引号”的问题。


2
嗨,不是很正确的解决方案。仅当您的单元格中没有任何内部回车符(按alt输入创建内部回车符)时,此方法才有效
Andrew Bickerton

0

我发现可以轻松解决此问题。安装OpenOffice Calc并打开.xlsx文件。然后只需复制单元格内容并粘贴到任何文本编辑器中。烦人的前导和尾随引号将不会出现。


0

我知道今年是2018年,这些职位虽然年龄较大,但仍然很相关。他们帮助我找到了解决方案。

  1. 我把= A2放在公式中用Char查找单元格。
  2. 然后,我复制A2并将其作为值粘贴到另一个单元格中,例如A3。
  3. 然后我选择A3,压制F2CtrlShiftHomeCtrlC
  4. 就停在那里,不要粘贴到另一个Excel单元格中。留在剪贴板中并粘贴到记事本中。
  5. 看不见的引号消失。

像INXS所说的消失,消失!:=)

可能有人已经说过这种解决方案,所以在阅读了所有示例之后,我深表歉意,使我深深地陷入了沉思,你们都提供了帮助!


-1

像您一样,我将数据放在一列中。因此,要复制不带引号的值,我将整个列与数据连接在一起。这适用于Google Docs电子表格,但我想它可能适用于Excel,可能必须更改CONCATENATE函数。

要串联整个G列:

=CONCATENATE(G:G)

它仅在引号和末尾添加引号,并且很容易在以后手动编辑。


不适用于excel
Baljeetsingh 2014年

-1

根据解决方案的答案,我们可以创建一个自动发布的网页,其中仅包含您想要的文本范围-不带引号。您可以将其复制并粘贴到其他位置。设置好之后,它就永远存在并且不会损坏您的主文件。

去做这个,...

选择您的单元格,然后选择save as.. save as file type= Single File Web Page。与选项Republish $ : $(您选择的范围)。

点击发布。选择AutoRepublish every time this workbook is saved

  • 然后,您将获得一个网页发布的网页,其中仅包含您的范围内的数据,其表格格式不带引号。复制和粘贴 :)
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.