2012-10-26 44 views
5

Có thể sao chép chuỗi rtf vào khay nhớ tạm thời để xuất bản hay không. Định dạng phải được giữ nguyên càng nhiều càng tốt (ví dụ: màu văn bản).Cách sao chép văn bản RTF vào clipboard để sử dụng trong excel

Mã Net sau được sử dụng để điền vào clipboard

var dataObject = new DataObject(); 
dataObject.SetData(DataFormats.Rtf, rtf); 
Clipboard.SetDataObject(data_object); 
  1. Excel từ chối các nội dung rtf vào clipboard
  2. MS Word chấp nhận nội dung rtf.
  3. Khi tôi dán vào MSWord và sao chép từ MSWord vào Excel nó hoạt động.

Cách tốt nhất để chuyển đổi rtf thành định dạng chấp nhận tốt nhất là gì?

Ghi chú: Như @KreepN đã đề xuất, System.Windows.Documents.TextRange có thể được sử dụng để chuyển đổi RTF thành HTML và ngược lại. HTML được Excel công nhận.

+0

Bạn có thể cung cấp một số ví dụ về điều đó không? – Kosmos

Trả lời

0

Tôi nghĩ rằng nó phụ thuộc một phần vào biến "rtf" được định nghĩa là gì. Đây là một đoạn trích mà tôi đã sử dụng để sao chép dữ liệu RTF vào clipboard mà không dán vào 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); 
Các vấn đề liên quan