2010-03-14 14 views
8

क्या ओपन एक्सएमएल एसडीके का उपयोग दस्तावेज़ के उन हिस्सों में हेरफेर करने के लिए करना संभव है जो वर्तमान में Office एप (शब्द/पीपीटी) में खुले हैं। मुझे पता है कि वीएसटीओ का उपयोग करना सबसे आसान बात है, लेकिन इसकी धीमी गति और तत्वों को सम्मिलित करने के लिए क्लिपबोर्ड उपयोग शामिल होगा, ओएक्सएमएल एसडीके प्रत्यक्ष और सरल है।सक्रिय दस्तावेज़ संपादित करने के लिए ओपन एक्सएमएल एसडीके

अगर कोई कोड कोड नमूना पोस्ट कर सकता है तो यह बहुत अच्छा होगा।

अग्रिम धन्यवाद
राकेश

उत्तर

-1

स्पष्ट रूप से आप Sharepoint के बिना ऐसा नहीं कर सकते हैं।

प्रति Zeyad Jarabi के रूप में/..

... आप एक मंच कैसे एक साझा ताला (SharePoint या SkyDrive) की तरह लेने के लिए समझता है कि जरूरत है। इस अवधारणा के बिना एप्लिकेशन और एसडीके केवल ताले पढ़ सकते हैं या लिख ​​सकते हैं, जो एक ही फाइल तक पहुंचने से प्रौद्योगिकी के इन दो टुकड़ों को रोकता है।

+0

यहां अधिक जानकारी http://blogs.msdn.com/b/brian_jones/archive/2009/11/23/open-xml-sdk -वर्ड-ऑटोमेशन-सेवाएं-प्रेजेंटेशन-at-pdc.aspx – GustavoTM

+0

यह गलत और अप्रासंगिक है। दुख की बात भी स्वीकार्य उत्तर। –

0

नीचे की तरह कुछ: -

//include the namespace 

using DocumentFormat.OpenXml.WordProcessing 

//Open and manipulate temp.docx 

using (WordprocessingDocument myDoc = WordprocessingDocument.Open("temp.docx", true)) 
{ 
    //Access main part of document 
    MainDocumentPart mainPart = myDoc.MainDocumentPart; 

    //Add new comments part to document 
    mainPart.AddNewPart<WordprocessingCommentsPart>(); 

    //Delete Styles part within document 
    mainPart.DeletePart(mainPart.StyleDefinitionsPart); 

    //Iterate through all custom xml parts within document 
    foreach (CustomXmlPart customXmlPart in mainPart.CustomXmlParts) { 
     //DO SOMETHING 
    } 
} 

इसके अलावा, आप LINQ इस्तेमाल कर सकते हैं foreach छोरों से बचने के लिए।

+0

क्षमा करें, अगर मैं पहले स्पष्ट नहीं था। मैं उस दस्तावेज़ में हेरफेर करना चाहता हूं जो वर्तमान में Word में खुला है। मैं रिबन में एक बटन बनाउंगा जो वर्तमान में सक्रिय दस्तावेज़ में भागों को जोड़ता है। इसका मतलब यह होगा कि इस क्रिया को चलाने के दौरान दस्तावेज़ सहेजा नहीं जा सकता है, इसलिए, कोई फ़ाइल पथ नहीं है। सक्रिय दस्तावेज़ ऑब्जेक्ट को WordProcessingDocument ऑब्जेक्ट में परिवर्तित करने का कोई तरीका है धन्यवाद आर – user240282

5

हाँ, यह एक खुला VSTO दस्तावेज़ को संशोधित करने, OpenXML SDK 2 का उपयोग, तो बदली हुई एक्सएमएल का उपयोग कर अपने खुले दस्तावेज़ को अद्यतन संभव है।

http://msdn.microsoft.com/en-us/library/ff191178.aspx

http://code.msdn.microsoft.com/Improve-Automation-415bff13

मूल रूप से आप एक सीमा से एक्सएमएल मिलता है, एक धारा के रूप में यह इलाज है, यह पैकेज अप, पैकेज पर SDK का उपयोग, तो संशोधित xml प्रक्रिया उलट कर वापस डालने ।

ज्ञान यह है कि एसडीके का यह सामान्य ज्ञान उपयोग संभव नहीं है। हालांकि, यह सिर्फ गलत है।

byte[] byteArray = null; 
using (var fs = new FileStream(excelFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { 
    int numBytesToRead = Convert.ToInt32(fs.Length); 
    byteArray = new byte[numBytesToRead]; 
    fs.Read(byteArray, 0, numBytesToRead); 
} 
using (MemoryStream mem = new MemoryStream()) { 
    mem.Write(byteArray, 0, byteArray.Length); 
    XLWorkbook wb = new XLWorkbook(mem); 
    ... 
} 

मेरे मामले में मैं केवल दस्तावेज़ पढ़ रहा हूँ और यह नहीं करेंगे:

0

मैं (पथ excelFileName के रूप में डिस्क पर फ़ाइल सहेजने के बाद) एक एक्सेल दस्तावेज़ ClosedXML जैसे का उपयोग कर का उपयोग कर ऐसा करने में सक्षम था इसे सहेज लें, लेकिन यदि आवश्यक हो तो आप संशोधित स्ट्रीम को दूसरी फ़ाइल में लिख सकते हैं।

संबंधित मुद्दे