2012-10-26 14 views
5

में उपयोग के लिए आरटीएफ टेक्स्ट को क्लिपबोर्ड पर कॉपी करने के लिए कैसे करें एक्सेल के लिए क्लिपबोर्ड पर आरटीएफ स्ट्रिंग की प्रतिलिपि बनाना संभव है। स्वरूपण जितना संभव हो संरक्षित किया जाना चाहिए (उदा। पाठ-रंग)।एक्सेल

निम्नलिखित नेट कोड क्लिपबोर्ड

var dataObject = new DataObject(); 
dataObject.SetData(DataFormats.Rtf, rtf); 
Clipboard.SetDataObject(data_object); 
  1. एक्सेल rtf क्लिपबोर्ड सामग्री
  2. एमएस वर्ड rtf सामग्री स्वीकार मना कर दिया भरने के लिए प्रयोग किया जाता है।
  3. जब मैं MSWord में पेस्ट करता हूं और MSWord से Excel में कॉपी करता हूं तो यह काम करता है।

आरटीएफ को एक प्रारूप में बदलने के लिए सबसे अच्छा तरीका क्या है जो एक्सेल स्वीकार करता है?

टिप्पणियां: @KreepN ने सुझाव दिया है, System.Windows.Documents.TextRange का उपयोग आरटीएफ को HTML में बदलने के लिए किया जा सकता है और इसके विपरीत। एचटीएमएल एक्सेल द्वारा मान्यता प्राप्त है।

+0

क्या आप इसके लिए कुछ उदाहरण प्रदान कर सकते हैं? – Kosmos

उत्तर

0

मुझे लगता है कि यह आंशिक रूप से निर्भर करता है कि चर "आरटीएफ" को किस प्रकार परिभाषित किया गया है। यहां एक स्निपेट है जिसे मैंने आरटीएफ डेटा को क्लिपबोर्ड पर कॉपी करने के लिए उपयोग किया है जो 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);