2012-10-26 50 views
5

rtf文字列をExcelのクリップボードにコピーすることは可能ですか?書式設定は可能な限り保存する必要があります(例:テキスト色)。RTFテキストをクリップボードにコピーしてExcelで使用する方法

次の.NETコードがクリップボードを埋めるために使用される

var dataObject = new DataObject(); 
dataObject.SetData(DataFormats.Rtf, rtf); 
Clipboard.SetDataObject(data_object); 
  1. Excelは、RTFクリップボードコンテンツ
  2. を拒否MS WordのRTFコンテンツを受け付けます。
  3. 私はMSWordに貼り付け、MSWordからExcelにコピーすると動作します。

rtfをExcelで使用できる形式に変換するにはどうすればよいですか?

備考: @KreepNが示唆しているように、System.Windows.Documents.TextRangeを使用して、RTFをHTMLに変換したり、その逆を行うことができます。 HTMLはExcelによって認識されます。

+0

いくつか例を挙げてください。 – Kosmos

答えて

0

変数 "rtf"が何であるかによって部分的には違うと思います。ここでは、Excelに貼り付けるRTFデータをクリップボードにコピーするためのスニペットを示します。

 FlowDocument doc = CreateDoc(); 
     TextRange range = new TextRange(doc.ContentStart, doc.ContentEnd); 
     using (Stream stream = new MemoryStream()) 
     { 
      range.Save(stream, DataFormats.Rtf); 
      dataObj.SetData(DataFormats.Rtf, Encoding.UTF8.GetString((stream as MemoryStream).ToArray())); 
     } 
     Clipboard.SetDataObject(dataObj); 
関連する問題