使用C#可以将剪贴板上的对象粘贴到excel中作为数据和公式?

在WPF应用程序中,我需要生成可以放在剪贴板上并粘贴到excel中的数据。 我需要粘贴一些可以携带数据和公式的东西。

我正在尝试OpenXML …但我不知道这是行之有效的。

我目前正在尝试制作原始的“Spreadsheet ML”(这与OpenXML不同)?

无论如何,如果任何人都可以提供给我一些指针…或者更好,C#实际上把这种数据放在剪贴板上,我将不胜感激!

我在这里发布了另一个更具体的问题: 如何将OpenXML放到剪贴板上,以便粘贴到Excel中?

我想答案是没有。 这当然是事实。 尝试这个简单的testing,使用Windows XP剪贴板查看器(clipbrd.exe),你可以从任何XP系统抓取在Vista / Windows7上运行。

1) Copy from Excel. Just a few cells, as you don't want to crash anything. 2) In clipbrd.exe, save as a file. Call it xl.clp It may take awhile, as it will force 1) 3) Excel to render all clipboard formats. 4) Close Excel 5) Press PrintScreen to wipe the clipboard. 6) Open Excel again 7) In clipbrd.exe, open xl.clp 8) Paste into Excel. Did you get your forumulas back? I expect not 

啊等等,还有更多! 我只是用Excel 2009试了这个。如果我粘贴,我得到纯文本版本。 但是,如果我做一个select性粘贴,并select“XML电子表格”,它的工作原理! 而且它甚至可以调整论坛,如果你粘贴到另一行。 哇。 这是新的,整齐。 所以…你可以,如果你使用这种格式。 它看起来就像是包含接近顶部的XML的纯文本。 您需要将“XML Spreadsheet”注册为私有数据格式。

这是不能做到的。 我最近和微软(支持Office开发团队)一起完成了这个任务,Office不会接受来自第三方应用程序的任何OpenXML格式。 对于Word你需要使用rtf和Excel / PPT你需要使用HTML。

但是我们尝试复制Word自己复制/粘贴的内容,即使它是唯一提供的格式,也不会从第三方应用程序中获取。 而MS为我们证实了这一行为。

Phobis,请尝试下一篇文章: 链接

然后你可以使用这个代码,查看标签ss:Formula。

 <Table ss:ExpandedColumnCount="4" ss:ExpandedRowCount="3" x:FullColumns="1" x:FullRows="1" ss:DefaultColumnWidth="60" ss:DefaultRowHeight="15"> <Row ss:Index="2"> <Cell ss:Index="2"><Data ss:Type="String">A</Data></Cell> <Cell><Data ss:Type="String">B</Data></Cell> <Cell ss:Formula="=CONCATENATE(RC[-2],RC[-1])"><Data ss:Type="String">AB</Data></Cell> </Row> <Row> <Cell ss:Index="2"><Data ss:Type="Number">1</Data></Cell> <Cell><Data ss:Type="Number">2</Data></Cell> <Cell ss:Formula="=SUM(RC[-2]:RC[-1])"><Data ss:Type="Number">3</Data></Cell> </Row> </Table> 

这对我行得通。