2012-10-26 4 views
5

Excel 용 클립 보드에 rtf 문자열을 복사 할 수 있습니까? 형식은 가능한 한 많이 보존해야합니다 (예 : 텍스트 색상).RTF 텍스트를 클립 보드로 복사하여 Excel에서 사용하는 방법

다음 닷넷 코드는 클립 보드

var dataObject = new DataObject(); 
dataObject.SetData(DataFormats.Rtf, rtf); 
Clipboard.SetDataObject(data_object); 
  1. Excel에서
  2. MS Word에서 RTF 내용을 받아들이는 RTF 클립 보드의 내용을 거부를 채우는 데 사용됩니다.
  3. 내가 MSWord에 붙여 넣고 MSWord에서 Excel로 복사 할 때 작동합니다.

rtf를 Excel에서 허용하는 형식으로 변환하는 가장 좋은 방법은 무엇입니까?

비고 : @KreepN이 제안했듯이 System.Windows.Documents.TextRange를 사용하여 RTF를 HTML로 변환하거나 그 반대로 변환 할 수 있습니다. HTML은 Excel에서 인식됩니다.

+0

몇 가지 예를 들어 주시겠습니까? – Kosmos

답변

0

변수 "rtf"가 무엇인지에 부분적으로 달려 있다고 생각합니다. 다음은 Excel에 붙여 넣기하는 RTF 데이터를 클립 보드로 복사하는 데 사용한 스 니펫입니다.

 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); 
관련 문제