在WPF应用程序中,我需要生成可以放在剪贴板上并粘贴到excel中的数据。我需要粘贴可以传输数据和公式的东西。
我正在尝试OpenXML ......但我不确定是否有效。
我目前正在尝试制作原始的“电子表格ML”(这与OpenXML不同?)
无论如何,如果有人能提供一些指示......或者更好的是,C#实际上将这种数据放在剪贴板上,我将非常感激!
我在此处发布了另一个更具体的问题:How do I get OpenXML onto the clipboard so that it will paste into Excel?
答案 0 :(得分:1)
我认为答案是否定的。那当然是这样的。 尝试这个简单的测试,使用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试过这个。如果我粘贴,我会得到纯文本版本。但是,如果我选择Paste Special,并选择“XML Spreadsheet”,它就可以了!如果你粘贴到另一行,它甚至会调整论坛。哇。这是新的,整洁。 所以......如果你使用这种格式,你可以。看起来它只是包含靠近顶部的XML的纯文本。您需要将“XML Spreadsheet”注册为私有数据格式。
答案 1 :(得分:1)
无法做到。我最近通过微软(支持和Office开发团队)完成了这项工作,Office不会接受来自第三方应用程序的任何OpenXML格式。对于Word,您需要使用rtf,对于Excel / PPT,您需要使用html。
但是我们尝试复制Word复制/粘贴到自身的内容,它不会从第三方应用程序中获取,即使它是唯一提供的格式。 MS为我们证实了这种行为。
答案 2 :(得分:0)
Phobis,试试下一篇文章: Link
然后您可以使用此代码,查看标签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>
这适合我。