将剪贴板中的数据以正确的格式粘贴到Excel中
在性能分析器中,我从表格剪贴板中复制数据。
然后将其粘贴到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),当我将其粘贴到文本编辑器中时,我们看到了原始文本。
原因,为什么你的DataGrid和Excel之间的直接工作是好的,是DataGridView组件的实现及其对Copy操作的反应,以及应用程序的行为,你想要粘贴的内容。 它可以使用记事本忽略的一些特殊代码。
编辑
所以,现在我明白你的兴趣了。 我不知道它如何在C#中工作,但在Java中看起来如此。
每次在剪贴板中有任何信息时,都会有很多变体,其他应用程序如何使用此内容。
假设我想从剪贴板中获取内容。 我这样做:
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); Transferable contents = clipboard.getContents(null);
但现在我应该确定这些信息应该如何查找我的应用程序,并且在这里您的问题开始。
如果我在剪贴板中有图片,我只有一个可能的表示forms:
[mimetype=image/x-java-image;representationclass=java.awt.Image]
如果我从记事本中find了一些文本,则已经有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#开发find一些信息。 我敢肯定,你会明白的!