0

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

在此处输入图像描述

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

在此处输入图像描述

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

函数名称 Inclusive Samples Exclusive Samples Inclusive Samples % Exclusive Samples %
[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),当我将其粘贴到文本编辑器中时,我们看到了原始文本。

4

1 回答 1

6

原因,为什么您的数据网格和 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# 开发信息。我敢肯定,你会明白的!

于 2012-12-26T22:23:57.053 回答