如何将RTF文本复制到剪贴板以便在excel中使用

时间:2012-10-26 14:54:20

标签: .net winforms excel clipboard rtf

是否可以将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时,它可以正常工作。
  4. 将rtf转换为excel接受的格式的最佳方法是什么?

    说明:   正如@KreepN所建议的那样,System.Windows.Documents.TextRange可用于将RTF转换为HTML,反之亦然。 HTML由Excel识别。

1 个答案:

答案 0 :(得分: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);