复制粘贴制表符文本到Excel

3
我正在通过C# Stringbuilder生成一段文本块,其中包含适当的制表符分隔文本(换行符,“\t”等),并在我的Web应用程序中显示该文本块的内容。如果我将其复制/粘贴到Excel中,则所有文本都粘贴到电子表格的第一列中。
如果我复制该块的outerHTML(Chrome)或将其复制/粘贴到Notepad ++,然后再粘贴到Excel中,所有数据都会整齐地粘贴到单独的单元格中 - 这是此操作的所需结果。有人能告诉我需要做什么才能将文本从我的应用程序中复制并粘贴到Excel中,使文本粘贴到单独的单元格中(即保留制表符分隔格式)吗?
5个回答

5
很遗憾,需要多一步操作。
Excel(和许多其他应用程序)的默认粘贴行为是使用剪贴板内容的原始格式。
从 Web 应用程序/HTML 页面复制将导致剪贴板内容被标记为 HTML。剪贴板内容将具有制表符,但由于 HTML 将制表符渲染为空格(如果有多个制表符,则压缩为单个空格)- 只需使用 Ctrl+V 即可将制表符转换为空格,并且在粘贴到 Excel 中时,内容将出现在单个单元格中。
您需要使用“选择性粘贴”选项并选择“Unicode 文本”才能保留制表符。没有办法默认设置此选项:https://answers.microsoft.com/en-us/msoffice/forum/msoffice_excel-mso_windows8-mso_365hp/how-to-change-default-paste-behavior-with-ctrl-v/f58da075-8fd5-4c80-a64b-5e71ec8ad38b?auth=1 从 Chrome 的 outerHTML 复制将首先将剪贴板格式设置为文本,在 Notepad++ 中进行粘贴会将其作为文本而不是 HTML 进行粘贴,然后重新复制将格式设置为文本- 这就是这些方法有效的原因。

这是我在任何地方找到的唯一解释,解释了实际发生的情况。谢谢你。 - Kenneth

2
我能够通过将文本元素从div更改为textarea来实现将内容粘贴到Excel并保留格式。从textarea复制/粘贴tsv到以制表符分隔的Excel电子表格时,粘贴的数据以表格格式呈现。感谢大家的帮助。

这是一个很好的解决方案,当页面的唯一目的是输出要复制的数据时。我可以使用echo "<textarea style='width:100%; height:100%;">代替echo "<pre>"。谢谢! - Kenneth

0

试试这个,

在将数据集Excel的文本粘贴到列分隔符之前,将其转换为空格,然后再尝试粘贴您的值。

enter image description here


如果任何单元格的预期内容包含空格,则此方法将无法正常工作。 - PaulF
1
在那种情况下,它是不起作用的。@joesAppendix请提供您数据的样本。 - Imran Malek

0

虽然这是一个老话题,但我也遇到了同样的问题。每天需要从一个输出到 Google Chrome 浏览器的程序中复制一些内容。但是,每次将其粘贴到 Excel 中时,它都会进入一个单元格。但如果我使用“全选并粘贴”功能,则可以正常粘贴。

我发现,您可以仅复制所需的行,然后它将按预期方式运行 - 如果您不将光标拖到页面底部。也就是说,如果您更加小心地将其突出显示到屏幕右下角的最后一条信息,那么当您将其粘贴到 Excel 中时,它将以制表符分隔的形式粘贴。而如果您将其拖到底部,它将全部粘贴到一个单元格中。这可能会帮助未来遇到此类问题的人。


-1

您可以在Excel中使用“文本到列”来按照您想要的方式格式化数据。

将数据粘贴到Excel中后,选择包含数据的列。

  1. 转到“数据” - 点击“文本到列”
  2. 选择分隔符并点击下一步
  3. 选择制表符并点击完成。

如果您不想使用此额外步骤,则以下内容适用于Excel 2013:

  1. 转到主页,粘贴选项并单击“使用文本导入向导”
  2. 选择分隔符并点击下一步
  3. 选择制表符并点击完成。

谢谢...为了详细说明,我的电子表格已经设置为接受制表符分隔的文本。这是为了一个最终用户,他只想能够从网页上复制/粘贴制表符分隔的文本,而不需要额外的步骤(他的电子表格也默认为制表符分隔)。如果您将outerHTML复制并粘贴到Excel中,则可以实现此操作。 - joesAppendix
好的,这样就清楚多了。希望修改后对您有用! - Roosz0rd
我很感谢您的回答,但是我收到的指令是“在Excel中粘贴时不需要额外步骤”。文本应该能够粘贴到Excel中并保持其“表格”格式,就像它是一个tsv文件一样。 - joesAppendix
抱歉,我无法提供任何帮助,我不知道是否有不需要额外步骤的解决方法。或者您可能对VBA解决方案感兴趣? - Roosz0rd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接