5

是否可以将 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.TextRange 可用于将 RTF 转换为 HTML,反之亦然。Excel 可以识别 HTML。

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 回答