0

WPFアプリケーションでは、クリップボードに配置してExcelに貼り付けることができるデータを生成する必要があります。データや数式を引き継ぐことができるものを貼り付ける必要があります。

OpenXMLを試していましたが、うまくいくかどうかはわかりません。

現在、生の「スプレッドシートML」を作成しようとしています(これはOpenXMLとは異なりますか?)

とにかく、誰かが私にいくつかのポインタを提供してくれるなら...またはもっと良いことに、実際にこの種のデータをクリップボードに置くC#、私はそれを大いに感謝します!

ここに別のより具体的な質問を投稿しました:OpenXMLをクリップボードに入れてExcelに貼り付けるにはどうすればよいですか?

4

3 に答える 3

1

答えはNONEだと思います。確かに昔はそうでした。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 スプレッドシート」をプライベート データ形式として登録する必要があります。

于 2010-09-03T21:46:14.770 に答える
1

それはできません。私は最近、Microsoft (サポートおよび Office 開発チーム) とこれを経験しましたが、Office はサードパーティ アプリからの OpenXML 形式を受け入れません。Word の場合は rtf を使用する必要があり、Excel/PPT の場合は html を使用する必要があります。

しかし、Word が自分自身にコピー/貼り付けする機能を複製しようとしましたが、それが提供されている唯一の形式であっても、サード パーティのアプリからそれを取得することはできません。そして、MS はこの動作を確認しました。

于 2011-05-25T03:03:06.813 に答える
0

フォビス、次の記事を試してみてください: リンク

次に、このコードを使用できます。タグ 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>

それは私にとってはうまくいきます。

于 2013-04-05T16:23:37.713 に答える