5

rtf 文字列を Excel のクリップボードにコピーすることは可能ですか。書式設定は可能な限り維持する必要があります (例: text-color)。

次の .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 で認識されます。

4

1 に答える 1

0

変数「rtf」が何として定義されているかに部分的に依存すると思います。これは、RTF データを Excel に貼り付けるクリップボードにコピーするために使用したスニペットです。

        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);
于 2016-01-28T13:17:27.850 に答える