2012-08-30 24 views
7

मैं मानता हूं, मैं इंटरऑप पुस्तकालयों का उपयोग करने के लिए बहुत नया हूं, लेकिन सलाह हमेशा लोगों को दी जाती है, एक मैक्रो रिकॉर्ड करें और वीबीए कोड देखें। समस्या यह है कि मैक्रो वास्तव में रिकॉर्ड नहीं करता है कि मैं क्या कर रहा हूं: वर्तमान चयन पर इसे लागू करने के लिए त्वरित शैली पर क्लिक करनासी # में वर्ड क्विक स्टाइल कैसे लागू करें - न केवल साधारण स्वरूपण बल्कि पूरी शैली?

मेरे कार्य बहुत सरल है: मैं एक पैरा (Microsoft.Office.Interop.Word.Paragraph) करने के लिए एक त्वरित शैली लागू करने के लिए की जरूरत है। set_style कमांड का उपयोग करते हुए, केवल मूल स्वरूपण लागू होता है, और अनुच्छेद इसे मूल त्वरित शैली चयन (सामान्य) रखता है।

रेमो के दृष्टिकोण का उपयोग करके यह मेरे लिए काम करता है, लेकिन यह मेरे अपने कोड के समान ही लगता है, और मैं इसे काम नहीं कर सकता, और मुझे लगता है कि यह ऑब्जेक्टमोडेल की मेरी समझ हो सकती है जो थोड़ी दूर है।

public void AddParagraph(string text, string styleName = null) 
{ 
    Paragraph paragraph = _document.Content.Paragraphs.Add(); 
    if (styleName != null) 
    { 
    paragraph.Range.set_Style(_document.Styles[styleName]); 
    } 

    paragraph.Range.Text = text; 
    paragraph.Range.InsertParagraphAfter(); 
} 

मैं इसे उदा। AddParagraph("A title", "Heading 1");, लेकिन मेरे दस्तावेज़ को बनाने के लिए उपरोक्त रैपर का उपयोग करने का नतीजा यह है कि कोई पूर्ण शैली लागू नहीं होती है, केवल फ़ॉन्ट, रंग, आकार और बोल्ड/इटालिक्स।

मैं अपनी खुद की परिभाषित और नामित शैलियों के साथ अपनी खुद की .dotx फ़ाइल का उपयोग कर रहा हूं, लेकिन बस अपने स्वयं के टेम्पलेट के साथ रेमो काम से कोड कॉपी कर रहा हूं, इसलिए मुझे नहीं लगता कि यह समस्या है, और उस कोड का उपयोग करके मैं असमर्थ हूं अपने स्वयं के स्टाइल के साथ कई अनुच्छेदों को कैसे जोड़ना है, यह जानने के लिए।

क्या कोई मेरे दृष्टिकोण के साथ गलत क्या बता सकता है, या कम से कम मैं अपनी आवश्यकताओं के लिए रेमो काम द्वारा प्रदान किए गए उत्तर को कैसे बना सकता हूं? :)

उत्तर

7

यह मेरे लिए काम करता है।

Word.Application _wordApp = new Word.Application(); 
Word.Document oDoc = _wordApp.Documents.Add(); 
_wordApp.Visible = true; 
_wordApp.Selection.TypeText("Heading"); 
oDoc.Paragraphs[1].set_Style(Word.WdBuiltinStyle.wdStyleHeading2); 

जब आप कहते हैं कि

paragraph.Range.Text = text + paragraph.Range.Text; 

आप अधिक पैराग्राफ से आप कल्पना की हो रही है। मुझे तुम्हारी जरूरत है लगता है:

paragraph.Range.Text = text; 

प्रयास करें:

Paragraph paragraph = _document.Content.Paragraphs.Add(); 
paragraph.Range.Text = text; 

if (styleName != null) 
{ 
    paragraph.set_Style(_document.Styles[styleName]); 
} 

paragraph.Range.InsertParagraphAfter(); 
+0

धन्यवाद Remou, मैं अपने प्रश्न को नवीनीकृत किया है, जैसा कि आप मुझे थोड़ा और करीब हो गया लेकिन नहीं सभी तरह। मैं शायद इस बारे में गलत तरीके से जा रहा हूं। –

+0

... मैं डंबस्ट्रक हूं। शैली और पाठ को लागू करने के क्रम को बदलना यह है कि, 'पैराग्राफ। रेंज। टेक्स्ट;' भाग कुछ पुराना था जिसकी मैंने कोशिश की और गलती से प्रतिलिपि बनाई। आपके सहयोग के लिए धन्यवाद! :) –