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

Posted

技术标签:

【中文标题】如何将 RTF 文本复制到剪贴板以在 excel 中使用【英文标题】:How to copy RTF text to clipboard for use in excel 【发布时间】:2012-10-16 20:37:13 【问题描述】:

是否可以将 rtf 字符串复制到 Excel 的剪贴板。应尽可能保留格式(例如文本颜色)。

以下 .Net 代码用于填充剪贴板

var dataObject = new DataObject();
dataObject.SetData(DataFormats.Rtf, rtf);
Clipboard.SetDataObject(data_object);
    Excel 拒绝 rtf 剪贴板内容 MS Word 接受 rtf 内容。 当我粘贴到 MSWord 并从 MSWord 复制到 Excel 时,它可以工作。

将 rtf 转换为 excel 接受的格式的最佳方法是什么?

备注: 正如@KreepN 所建议的, System.Windows.Documents.TextRange 可用于将 RTF 转换为 html,反之亦然。 Excel 可以识别 HTML。

【问题讨论】:

你能提供一些例子吗? 【参考方案1】:

我认为这部分取决于变量“rtf”的定义。这是我用来将 RTF 数据复制到剪贴板并粘贴到 Excel 中的 sn-p。

        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);

【讨论】:

以上是关于如何将 RTF 文本复制到剪贴板以在 excel 中使用的主要内容,如果未能解决你的问题,请参考以下文章

通过 QT 将(rtf)表复制到剪贴板(或:将 QTextDocument 写入剪贴板)

如何将网页上的内容复制到excel表格

如何格式化 HTML 文件以在 Excel 中获取定义的名称(从 Web 浏览器复制粘贴)?

为啥 Excel vba 复制到剪贴板不一致?

如何使用 Swift 将文本复制到剪贴板/粘贴板

如何将文本文件中的数据复制到剪贴板? [复制]