如何将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.DexTrange可用于将RTF转换为HTML,反之亦然。HTML由Excel识别。

我认为这部分取决于变量" 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);

最新更新