【问题标题】:Paste data from clipboard to excel in right format以正确的格式将数据从剪贴板粘贴到 Excel
【发布时间】:2012-12-27 23:06:01
【问题描述】:

在性能分析器中,我从剪贴板中的 table 复制数据。

然后将其粘贴到excel文件中。 结果是:

但是当我将它粘贴到文本编辑器中时,我看起来很简单:

函数名称 包含样本 独家样本 包含样本 % 独家样品 %
[clr.dll] 26 26 39.39 39.39
Bee.Client.Common.BeeRight.CheckRightsForBeeUser() 10 0 15.15 0.00
Bee.Client.Common.BeeRight.get_Invoke() 6 0 9.09 0.00
Bee.Client.Common.BeeRight.Method(string,string) 13 0 19.70 0.00
Bee.Client.Common.Custom.FmCustom..ctor() 9 0 13.64 0.00

那你能告诉我,我怎样才能存档这个效果?

谢谢!

更新

我会尽力解释。 我的 winform 应用程序中有 DataGridView。我编写了一些函数,将数据从表复制到剪贴板(结果看起来像我示例中的文本)。如果我将此文本从剪贴板粘贴到 excel 中,结果将是带有剪贴板数据的 excel 文件,但根本没有格式,而且这个 excel 将难以阅读。

我想知道,他们如何从表格(图 1)中准备数据,当我将其粘贴到 Excel 时,它具有格式(图 2),当我将其粘贴到文本编辑器中时,我们看到的是原始文本。 .

【问题讨论】:

  • 你想达到什么效果?值或表格之间有一定的距离?
  • 或者您是否也希望在您的文本编辑器中使用网格?
  • 我想知道如何在这样的 excel 文件中归档格式?我的意思是,例如,粗体文本、对齐方式等等......
  • 在文本编辑器中?原始文本没有任何格式,这是您的文本编辑器向您显示的内容。
  • 我明白这一点。但我的问题与文本编辑器无关。我已经编辑了我的问题。

标签: c# .net excel


【解决方案1】:

原因,为什么您的数据网格和 Excel 之间的直接工作良好,是 DataGridView 组件的实现及其对复制操作的反应,以及您想要将内容粘贴到的应用程序的行为。它可以使用一些特殊的代码,记事本会忽略这些代码。

编辑

所以,现在我非常了解您的兴趣。我不知道它在 C# 中是如何工作的,但在 Java 中看起来是这样。

每次剪贴板中的任何信息都有很多变体,其他应用程序如何使用这些内容。

假设我想从剪贴板中获取内容。我这样做:

Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable contents = clipboard.getContents(null);

但现在我应该确定如何查找我的应用程序的信息,然后你的问题就开始了。

如果我在剪贴板中有一张图片,我只有 1 个可能的表示形式:

[mimetype=image/x-java-image;representationclass=java.awt.Image]

如果我有一些来自记事本的文本,那么已经有 27 个变体:

[mimetype=application/x-java-text-encoding;representationclass=[B]
[mimetype=application/x-java-serialized-object;representationclass=java.lang.String]
[mimetype=text/plain;representationclass=java.io.Reader]
[mimetype=text/plain;representationclass=java.lang.String]
[mimetype=text/plain;representationclass=java.nio.CharBuffer]
and so on...

如果我有一些 Excel 工作表中的单元格,则有 56 个变体:

[mimetype=application/x-java-text-encoding;representationclass=[B]
[mimetype=text/html;representationclass=java.io.Reader]
[mimetype=text/html;representationclass=java.lang.String]
[mimetype=text/html;representationclass=java.nio.CharBuffer]
[mimetype=text/html;representationclass=[C]
and so on...

甚至还有一个用于 Excel 单元格的图像变体!

[mimetype=image/x-java-image;representationclass=java.awt.Image]

这就是为什么可以从 Excel 中复制一些单元格并将它们作为位图粘贴到 Paint 中的原因!记事本当然不可能,因为它的开发人员不想使用这个演示文稿。

现在我们可以看到,剪贴板并没有看起来那么原始。每次应用程序都可以分析内容并从中获取最佳变体。

现在您可以尝试查找一些 C# 开发信息。我相信,你会明白的!

【讨论】:

  • 感谢您的回答,安东!我想知道这些特殊代码是什么?我在哪里可以了解它们?
猜你喜欢
  • 2015-07-29
  • 1970-01-01
  • 2010-12-13
  • 2017-11-06
  • 1970-01-01
  • 1970-01-01
  • 2013-12-06
  • 2016-08-05
  • 1970-01-01
相关资源
最近更新 更多