मैं अपने वेब सर्वर पर एक वर्ड 2007 या अधिक docx फ़ाइल अपलोड करना चाहता हूं और सामग्री की तालिका को एक साधारण xml संरचना में परिवर्तित करना चाहता हूं। पारंपरिक वीबीए के साथ डेस्कटॉप पर ऐसा करना ऐसा लगता है जैसे यह आसान होता। Docx फ़ाइल बनाने के लिए प्रयुक्त WordprocessingML XML डेटा को भ्रमित करना भ्रमित है। ऑब्जेक्ट उन्मुख फैशन में दस्तावेज़ को नेविगेट करने के लिए कोई तरीका है (COM के बिना)?मैं एएसपी.NET ऐप में वर्ड डॉक्स को कैसे पूछ सकता हूं?
उत्तर
मैं अत्यधिक Open XML SDK 2.0 में देखने की सलाह देता हूं। यह एक सीटीपी है, लेकिन मुझे COM से निपटने के बिना xmlx फ़ाइलों में हेरफेर करने में यह बेहद उपयोगी पाया गया है। प्रलेखन थोड़ा सा स्केची है, लेकिन देखने के लिए महत्वपूर्ण चीज DocumentFormat.OpenXml.Packaging.WordprocessingDocument क्लास है। यदि आप .zip के एक्सटेंशन का नाम बदलते हैं और एक्सएमएल फाइलों में खोदते हैं तो आप .docx दस्तावेज़ को अलग कर सकते हैं। ऐसा करने से, ऐसा लगता है कि सामग्री की एक तालिका "संरचित दस्तावेज़" टैग में निहित है और शीर्षलेख जैसी चीजें वहां से हाइपरलिंक में हैं। इसके साथ थोड़ा सा रखकर, मैंने पाया कि इस तरह कुछ ऐसा करना चाहिए (या कम से कम आपको एक प्रारंभिक बिंदु दें)।
WordprocessingDocument wordDoc = WordprocessingDocument.Open(Filename, false);
SdtBlock contents = wordDoc.MainDocumentPart.Document.Descendants<SdtBlock>().First();
List<string> contentList = new List<string>();
foreach (Hyperlink section in contents.Descendants<Hyperlink>())
{
contentList.Add(section.Descendants<Text>().First().Text);
}
XML Documents and Data को शुरुआती बिंदु के रूप में देखें। विशेष रूप से, आप LINQ से एक्सएमएल का उपयोग करना चाहेंगे।
सामान्य रूप से, आप .NET अनुप्रयोग में COM का उपयोग नहीं करना चाहते हैं।
यहाँ एक्सएमएल के लिए LINQ का उपयोग कर खुला एक्सएमएल WordprocessingML दस्तावेजों क्वेरी करने पर एक ब्लॉग पोस्ट है। उस कोड का उपयोग करके आप एक प्रश्न इस प्रकार लिख सकते हैं:
using (WordprocessingDocument doc =
WordprocessingDocument.Open(filename, false))
{
foreach (var p in doc.MainDocumentPart.Paragraphs())
{
Console.WriteLine("Style: {0} Text: >{1}<",
p.StyleName.PadRight(16), p.Text);
foreach (var c in p.Comments())
Console.WriteLine(
" Comment Author:{0} Text:>{1}<",
c.Author, c.Text);
}
}
ब्लॉग पोस्ट: Open XML SDK and LINQ to XML
-Eric
- 1. वर्ड 2007 डॉक्स
- 2. मैं अपने सबवर्सन रिपोजिटरी से कैसे पूछ सकता हूं?
- 3. मैं केवल प्रत्यक्ष वंशजों के लिए कैसे पूछ सकता हूं?
- 4. मैं m4a फ़ाइल से अध्याय मेटाडेटा कैसे पूछ सकता हूं?
- 5. मैं रूट पासवर्ड के लिए कैसे पूछ सकता हूं लेकिन बाद में कार्रवाई कर सकता हूं?
- 6. MongoDB: मैं फ़ाइलों को कैसे संग्रहीत कर सकता हूं (वर्ड, एक्सेल, इत्यादि)?
- 7. मैं माइक्रोसॉफ़्ट वर्ड से पेजब्रैक कैसे हटा सकता हूं?
- 8. क्या मैं एक सूची पूछ सकता हूं? जावा
- 9. JQuery - क्या मैं मैकबुक प्रो ट्रैकपैड से पूछ सकता हूं?
- 10. मैं रनटाइम पर उपयोगकर्ता को उन्नत अनुमतियों के लिए कैसे पूछ सकता हूं?
- 11. मैं (एक अमेरिकी) परीक्षण कैसे कर सकता हूं कि मेरा एएसपी.NET/SQL सर्वर ऐप जर्मनी
- 12. मैं विकसित एक फेसबुक ऐप को कैसे हटा सकता हूं?
- 13. जावास्क्रिप्ट वर्ड प्रोसेसर/एडिटर (या, Google डॉक्स आर्किटेक्चर)
- 14. मैं एंड्रॉइड ऐप कैश को कैसे साफ़ कर सकता हूं?
- 15. ओपनक्ल कमांड कतार कैसे काम करता है, और मैं इसके बारे में क्या पूछ सकता हूं
- 16. मैं कैसे बता सकता हूं कि HTTP हेडर को एएसपी.NET एप्लिकेशन में कब भेजा गया है?
- 17. मैं समग्र कुंजी द्वारा कैसंड्रा में क्ली क्वेरी कैसे पूछ सकता हूं?
- 18. मैं AJAX ऐप में अप्रयुक्त सीएसएस कैसे ढूंढ सकता हूं?
- 19. क्या मैं अनसुलझे बाहरीों को अनदेखा करने के लिए वीसी ++ लिंकर से पूछ सकता हूं?
- 20. एएसपी.NET ऐप एक हाइपरलिंक
- 21. मैं न्यूमेरिक फ़ील्ड पर संख्यात्मक डेटा के बीच 'क्वेरी' कैसे पूछ सकता हूं?
- 22. मैं अपने मेटाडेटा के लिए कैसंद्रा क्लस्टर से कैसे पूछ सकता हूं?
- 23. मैं रिपोजिटरी पैटर्न के साथ क्रॉस टेबल कैसे पूछ सकता हूं?
- 24. मैं Google डॉक्स वेबसाइट को एंड्रॉइड में पीडीएफ प्रदर्शित करने के तरीके को कैसे बदल सकता हूं?
- 25. रूबी ऐप में अप्रयुक्त विधियों को कैसे ढूंढ सकता हूं?
- 26. मैं एनएलओजी लॉग फ़ाइल के पथ से कैसे पूछ सकता हूं?
- 27. मैं डिफ़ॉल्ट भंडारों की सूची के लिए मेवेन से कैसे पूछ सकता हूं?
- 28. मैं एमआईएम प्रकार मैपिंग के लिए आईआईएस से कैसे पूछ सकता हूं?
- 29. एएसपी.NET एमवीसी ऐप
- 30. एएसपी.NET ऐप के global.asax
मैं ओपन एक्सएमएल को आपकी पोस्ट पढ़ें - महान काम! –