在 WPF 应用程序中,我需要生成可以放在剪贴板上并粘贴到 excel 中的数据。我需要粘贴一些可以携带数据和公式的东西。
我正在尝试 OpenXML ......但我不确定它是否有效。
我目前正在尝试制作原始的“电子表格 ML”(这与 OpenXML 不同?)
无论如何,如果有人可以为我提供一些指针......或者更好的是,实际上将这种数据放在剪贴板上的 C#,我将不胜感激!
我在这里发布了另一个更具体的问题:如何将 OpenXML 放到剪贴板上以便粘贴到 Excel 中?
在 WPF 应用程序中,我需要生成可以放在剪贴板上并粘贴到 excel 中的数据。我需要粘贴一些可以携带数据和公式的东西。
我正在尝试 OpenXML ......但我不确定它是否有效。
我目前正在尝试制作原始的“电子表格 ML”(这与 OpenXML 不同?)
无论如何,如果有人可以为我提供一些指针......或者更好的是,实际上将这种数据放在剪贴板上的 C#,我将不胜感激!
我在这里发布了另一个更具体的问题:如何将 OpenXML 放到剪贴板上以便粘贴到 Excel 中?
这是不可能的。我最近与 Microsoft(支持和 Office 开发团队)一起完成了这个,Office 将不接受来自 3rd 方应用程序的任何 OpenXML 格式。对于 Word,您需要使用 rtf,对于 Excel/PPT,您需要使用 html。
但是我们尝试复制 Word 复制/粘贴到自身的内容,并且它不会从 3rd 方应用程序中获取该内容,即使它是提供的唯一格式。MS 为我们确认了这种行为。
我认为答案是否定的。过去肯定是这样。试试这个简单的测试,使用 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 尝试过。如果我粘贴,我会得到纯文本版本。但是,如果我进行选择性粘贴,然后选择“XML 电子表格”,它就可以了!如果您粘贴到另一行,它甚至会调整论坛。哇。这是新的,整洁的。所以...是的,如果您使用这种格式,您可以。看起来它只是包含靠近顶部的 XML 的纯文本。您需要将“XML 电子表格”注册为私有数据格式。
Phobis, try the next article: Link
Then you can use this code, look the tag 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>
That works for me.