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

是否有可能复制一个rtfstring到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所build议的,可以使用System.Windows.Documents.TextRange将RTF转换为HTML,反之亦然。 HTML被Excel识别。

我认为这部分取决于variables“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);