2009-09-01 10 views
17

मेरे पास एक "टेम्पलेट" डॉक्क्स दस्तावेज़ है जिसमें वांछित लेआउट है, और सी # का उपयोग करके सामग्री डालने की इच्छा है, लेकिन मुझे पैराग्राफ या टेबल जैसे दस्तावेज़ के विशिष्ट अनुभागों को विशिष्ट रूप से संबोधित करने का कोई तरीका नहीं मिल रहा है। दस्तावेज़ में तत्वों की विशिष्ट पहचान करने का सबसे अच्छा तरीका क्या है? धन्यवाद, मैट शार्प।टेम्पलेट डॉक्क्स दस्तावेज़ और ओपन एक्सएमएल एसडीके 2.0 (अगस्त 09) में सामग्री को कैसे बदलें?

उत्तर

11

आपका टेम्पलेट कैसे बनाया गया है? क्या यह * .docx के हिस्से के रूप में लोड अंतर्निहित XML स्कीमा का उपयोग करता है? या आप डेवलपर रिबन से सामग्री नियंत्रण का उपयोग कर रहे हैं, इस मामले में प्रत्येक नियंत्रण को किसी दिए गए टैग नाम से विशिष्ट रूप से पहचाना जाता है? इन दोनों दृष्टिकोणों से आपके दस्तावेज़ के कुछ हिस्सों को आसानी से पहचानने में मदद मिलेगी क्योंकि आप नियंत्रित कर सकते हैं कि टेबल या पैराग्राफ कहां होंगे।

इसके अलावा, आप Open XML SDK 2.0 (.NET 3.5 का उपयोग कर) का उपयोग करने पर विचार करना चाहेंगे। इसमें एक आसान दस्तावेज़ परावर्तक उपकरण शामिल है जो आपको किसी भी ओपन एक्सएमएल दस्तावेज़ को खोलने और निरीक्षण करने की अनुमति देता है और यह दिखाता है कि आप जिस तत्व पर क्लिक करते हैं उसके लिए कोड कैसे उत्पन्न करें।

इसके अलावा, सामग्री नियंत्रण के बारे में अधिक जानने के लिए आप इन पदों की जाँच कर सकते हैं:

+0

चीयर्स, मैं उन लिंक पर एक नज़र डालेगा। बहुत बहुत धन्यवाद। –

3

क्या आप दस्तावेज़ चर/फ़ील्ड का उपयोग कर सकते हैं? बस सम्मिलित करें-> त्वरित भाग-> फ़ील्ड्स-> दस्तावेज़ वैरिएबल पर जाएं, चर का नाम दर्ज करें।

उदाहरण: http://www.codeproject.com/KB/office/Fill_Mergefields.aspx

तुम भी बस प्लेसहोल्डर पाठ मूल्यों की तरह "## insert_first_name ##" का उपयोग और उसके बाद कोई खोज करते हैं और वे चर के लिए जगह ले सकता है।

उदाहरण: http://geekswithblogs.net/DanBedassa/archive/2009/01/16/dynamically-generating-word-2007-.docx-documents-using-.net.aspx

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। DocVariable दिलचस्प लग रहा है, और हम संभावित रूप से उस पाठ के बिट्स के लिए उपयोग कर सकते हैं। हालांकि, यह विशिष्ट पहचान सारणी के मुद्दे को संबोधित नहीं करता है। –

3

मुझे लगता है कि या तो आप बुकमार्क, या सामग्री नियंत्रण के लिए देख रहे हैं
मैं एक ही उद्देश्य के लिए एक्सेल में नामित श्रेणियों का उपयोग किया है (रिबन के डेवलपर टैब, कोड उदाहरण here पर)।

+0

बहुत बहुत धन्यवाद, मैं रिबन में डेवलपर टैब में एक नज़र डालेगा ... मैं भूल गया था कि यह वहां था ;-) –

1

यह करने के लिए कई विकल्प हैं।

मैंने एक साधारण ओपन-सोर्स लाइब्रेरी बनाई है जो टैगों को मूल्यों से प्रतिस्थापित करेगी।

उदाहरण के लिए Hi {name}data={name:"John"}Hi John द्वारा प्रतिस्थापित किया जाएगा।

संदेश यह है: https://github.com/edi9999/docxtemplater

डेमो: http://javascript-ninja.fr/docxgenjs/examples/demo.html

+1

टैंक @ edi9999 यह .docx के साथ बहुत अच्छा काम करता है, लेकिन .pptx के साथ एक ही समस्या है। – Massimo212121

+1

यह पीपीटीएक्स के साथ भी काम करता है ('PptxGen = आवश्यकता ("docxtemplater") का उपयोग करें।PptxGen' इसके बजाय) – edi9999

+1

धन्यवाद फिर से @ edi9999 woks pptx के साथ :) – Massimo212121

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