如何将 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 写入剪贴板)