【问题标题】:Tab Delimited Text Copy Paste To Excel制表符分隔文本复制粘贴到 Excel
【发布时间】:2017-10-09 11:14:50
【问题描述】:

我正在通过 C# Stringbuilder 生成一个文本块,其中包含适当的制表符分隔文本(新行、“\t”等),并在我的 Web 应用程序的标签中显示文本。如果我将其复制/粘贴到 Excel,所有文本都会粘贴到电子表格的第一列中。

如果我复制块的外部 HTML (Chrome) 或复制/粘贴到 Notepad++,然后粘贴到 Excel,所有数据都会整齐地粘贴到单个单元格中 - 这是这项工作的理想结果。谁能告诉我我需要做什么才能从我的应用程序中复制文本并将其粘贴到 Excel 中,以便将文本粘贴到单个单元格中(即,保持制表符分隔的格式)?

【问题讨论】:

    标签: c# excel csv


    【解决方案1】:

    很遗憾,似乎需要一个额外的步骤。

    在 Excel(以及许多其他应用程序)中粘贴的默认行为是使用剪贴板内容的原始格式。

    从 Web 应用程序/HTML 页面复制将导致剪贴板内容被标记为 HTML。剪贴板内容将包含制表符,但由于 HTML 将制表符呈现为空白(如果有多个制表符,则压缩为单个空格) - 只需使用 control-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,然后重新复制会将格式设置为文本 - 这就是这些方法有效的原因。

    【讨论】:

    • 这是我可以在任何地方解释实际情况的唯一解释。谢谢你。
    【解决方案2】:

    通过将我的文本写入的元素从 div 更改为 textarea,我能够粘贴到 Excel 并保持格式。将 tsv 从 textarea 复制/粘贴到制表符分隔的 Excel 电子表格中,在粘贴时将数据保持为表格格式。谢谢大家的帮助。

    【讨论】:

    • 当页面的唯一目的是输出要复制的数据时,这是一个很好的解决方案。而不是echo "<pre>",我可以echo "<textarea style='width:100%; height:100%;">。谢谢!
    【解决方案3】:

    试试这个,

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

    【讨论】:

    • 如果任何单元格的预期内容包含空格 - 那么这将不起作用。
    • 是的,在这种情况下它不起作用。 @joesAppendix 请提供您的数据样本。
    【解决方案4】:

    老话题,但我有这个。每天需要从输出到谷歌浏览器的程序中复制一些东西。每当它被复制并粘贴到 excel 中时,它都会进入 1 个单元格。但是,如果我控制所有并粘贴它就可以了。

    我发现你只能复制你想要的行,它会按照你想要的方式运行——如果你不把光标一直拖到页面外。即,如果您更仔细地突出显示屏幕右下角的最后一条信息,当您通过 Excel 时,它会将其粘贴为制表符分隔。而如果您将其向下拖动,则会将其全部粘贴到 1 个单元格中。可能会帮助将来有这个的人。

    【讨论】:

      【解决方案5】:

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

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

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

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

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

      【讨论】:

      • 谢谢...详细说明,我的电子表格已设置为接受制表符分隔的文本。这适用于希望能够从网页复制/粘贴制表符分隔的文本并将其粘贴而无需其他步骤的最终用户(他的电子表格也默认为制表符分隔)。如果您复制外层HTML 并粘贴到 Excel 中,这确实有效。
      • 好的,这样就更清楚了。希望编辑对您有用!
      • 我很欣赏这个答案,但我得到的指令是“无需额外步骤即可粘贴到 Excel 中”。文本应粘贴到 Excel 中并保持其“表格”格式,就好像它是一个 tsv 文件一样。
      • 对不起,我帮不上什么忙,我不知道不需要任何额外步骤的方法。或者您可能对 VBA 解决方案感兴趣?
      猜你喜欢
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多