Τρόπος αυτοματοποίησης του Microsoft Word για να δημιουργήσετε ένα νέο έγγραφο χρησιμοποιώντας Visual C#

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 316384 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Για Microsoft Visual Basic.NET έκδοση αυτού του το άρθρο, ανατρέξτε στην ενότητα 316383.
Για την έκδοση αυτού του Microsoft Visual Basic 6.0 το άρθρο, ανατρέξτε στην ενότητα 313193.
Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

Αυτό το άρθρο βήμα προς βήμα περιγράφει τον τρόπο δημιουργίας ενός νέου έγγραφο του Microsoft Word χρησιμοποιώντας αυτοματοποίηση από Microsoft Visual C# 2005 ή Microsoft Visual C#.NET.

Δείγμα κώδικα

Το δείγμα κώδικα σε αυτό το άρθρο παρουσιάζει τον τρόπο για να γίνει η ακολουθεί:
  • Εισαγωγή παραγράφους με μορφοποίηση κειμένου και.
  • Αναζήτηση και να τροποποιήσετε διάφορες περιοχές μέσα σε ένα το έγγραφο.
  • Εισαγωγή πινάκων, μορφοποιήστε τους πίνακες και συμπλήρωση των πινάκων με τα δεδομένα.
  • Προσθήκη ενός γραφήματος.
Για να δημιουργήσετε ένα νέο έγγραφο του Word χρησιμοποιώντας αυτοματοποίηση από Visual C# 2005 ή Visual C#.NET, ακολουθήστε τα εξής βήματα:
  1. Εκκίνηση του Microsoft Visual Studio 2005 ή Microsoft Visual Στούντιο.NET.
  2. Από το Το αρχείο μενού, κάντε κλικ στο κουμπί Νέα, και στη συνέχεια κάντε κλικ στο κουμπί Έργο. Στην περιοχή Τύποι έργου, κάντε κλικ στο κουμπί Έργα Visual C#, και στη συνέχεια κάντε κλικ στο κουμπί Εφαρμογή των Windows στην περιοχή Πρότυπα. Δημιουργείται η φόρμα Form1 από προεπιλογή.

    Σημείωση Στο Visual Studio 2005, κάντε κλικ στο κουμπί Visual C# αντί για του Έργα Visual C#.
  3. Προσθέστε μια αναφορά στο Βιβλιοθήκη αντικειμένων του Microsoft Word. Ακολουθήστε τα εξής βήματα:
    1. Από το Έργο μενού, κάντε κλικ στο κουμπί Προσθήκη αναφοράς.
    2. Από το COM καρτέλα, εντοπίστε Microsoft Word Βιβλιοθήκη αντικειμένων, και στη συνέχεια κάντε κλικ στο κουμπί Επιλέξτε.

      Σημείωση Στο Visual Studio 2005 δεν πρέπει να κάνετε κλικ Επιλέξτε.
      Σημείωση Microsoft Office 2003 περιλαμβάνει κύρια Interop (PIA). Microsoft Office XP περιλαμβάνουν στοιχεία PIA, αλλά μπορείτε να κάνετε λήψη. Για περισσότερες πληροφορίες σχετικά με τα στοιχεία PIA του Office XP, κάντε κλικ στον αριθμό του παρακάτω άρθρου Για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
      328912ΠΛΗΡΟΦΟΡΙΕΣ: Στοιχεία PIA του Microsoft Office XP είναι διαθέσιμα για λήψη
    3. Κάντε κλικ στο κουμπί OK με το Προσθήκη αναφορών παράθυρο διαλόγου για να αποδεχτείτε τις επιλογές σας. Εάν σας ζητηθεί να δημιουργήσετε προγράμματα εξομοίωσης για βιβλιοθήκες που επιλέξατε, κάντε κλικ στο Ναι.
  4. Από το Προβολή μενού, επιλέξτε Εργαλειοθήκη Για να εμφανίσετε την εργαλειοθήκη και, στη συνέχεια, να προσθέσετε ένα κουμπί Form1.
  5. Κάντε διπλό κλικ Button1. Εμφανίζεται το παράθυρο κώδικα της φόρμας.
  6. Στο παράθυρο κώδικα, αντικαταστήστε τον ακόλουθο κώδικα
    private void button1_Click(object sender, System.EventArgs e)
    {
    }
    					
    με:
    private void button1_Click(object sender, System.EventArgs e)
    {
    	object oMissing = System.Reflection.Missing.Value;
    	object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */ 
    
    	//Start Word and create a new document.
    	Word._Application oWord;
    	Word._Document oDoc;
    	oWord = new Word.Application();
    	oWord.Visible = true;
    	oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
    		ref oMissing, ref oMissing);
    
    	//Insert a paragraph at the beginning of the document.
    	Word.Paragraph oPara1;
    	oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
    	oPara1.Range.Text = "Heading 1";
    	oPara1.Range.Font.Bold = 1;
    	oPara1.Format.SpaceAfter = 24;    //24 pt spacing after paragraph.
    	oPara1.Range.InsertParagraphAfter();
    
    	//Insert a paragraph at the end of the document.
    	Word.Paragraph oPara2;
    	object oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    	oPara2 = oDoc.Content.Paragraphs.Add(ref oRng);
    	oPara2.Range.Text = "Heading 2";
    	oPara2.Format.SpaceAfter = 6;
    	oPara2.Range.InsertParagraphAfter();
    
    	//Insert another paragraph.
    	Word.Paragraph oPara3;
    	oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    	oPara3 = oDoc.Content.Paragraphs.Add(ref oRng);
    	oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:";
    	oPara3.Range.Font.Bold = 0;
    	oPara3.Format.SpaceAfter = 24;
    	oPara3.Range.InsertParagraphAfter();
    
    	//Insert a 3 x 5 table, fill it with data, and make the first row
    	//bold and italic.
    	Word.Table oTable;
    	Word.Range wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    	oTable = oDoc.Tables.Add(wrdRng, 3, 5, ref oMissing, ref oMissing);
    	oTable.Range.ParagraphFormat.SpaceAfter = 6;
    	int r, c;
    	string strText;
    	for(r = 1; r <= 3; r++)
    		for(c = 1; c <= 5; c++)
    		{
    			strText = "r" + r + "c" + c;
    			oTable.Cell(r, c).Range.Text = strText;
    		}
    	oTable.Rows[1].Range.Font.Bold = 1;
    	oTable.Rows[1].Range.Font.Italic = 1;
    
    	//Add some text after the table.
    	Word.Paragraph oPara4;
    	oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    	oPara4 = oDoc.Content.Paragraphs.Add(ref oRng);
    	oPara4.Range.InsertParagraphBefore();
    	oPara4.Range.Text = "And here's another table:";
    	oPara4.Format.SpaceAfter = 24;
    	oPara4.Range.InsertParagraphAfter();
    
    	//Insert a 5 x 2 table, fill it with data, and change the column widths.
    	wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    	oTable = oDoc.Tables.Add(wrdRng, 5, 2, ref oMissing, ref oMissing);
    	oTable.Range.ParagraphFormat.SpaceAfter = 6;
    	for(r = 1; r <= 5; r++)
    		for(c = 1; c <= 2; c++)
    		{
    			strText = "r" + r + "c" + c;
    			oTable.Cell(r, c).Range.Text = strText;
    		}
    	oTable.Columns[1].Width = oWord.InchesToPoints(2); //Change width of columns 1 & 2
    	oTable.Columns[2].Width = oWord.InchesToPoints(3);
    
    	//Keep inserting text. When you get to 7 inches from top of the
    	//document, insert a hard page break.
    	object oPos;
    	double dPos = oWord.InchesToPoints(7);
    	oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range.InsertParagraphAfter();
    	do
    	{
    		wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    		wrdRng.ParagraphFormat.SpaceAfter = 6;
    		wrdRng.InsertAfter("A line of text");
    		wrdRng.InsertParagraphAfter();
    		oPos = wrdRng.get_Information
                           (Word.WdInformation.wdVerticalPositionRelativeToPage);
    	}
    	while(dPos >= Convert.ToDouble(oPos));
    	object oCollapseEnd = Word.WdCollapseDirection.wdCollapseEnd;
    	object oPageBreak = Word.WdBreakType.wdPageBreak;
    	wrdRng.Collapse(ref oCollapseEnd);
    	wrdRng.InsertBreak(ref oPageBreak);
    	wrdRng.Collapse(ref oCollapseEnd);
    	wrdRng.InsertAfter("We're now on page 2. Here's my chart:");
    	wrdRng.InsertParagraphAfter();
    
    	//Insert a chart.
    	Word.InlineShape oShape;
    	object oClassType = "MSGraph.Chart.8";
    	wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    	oShape = wrdRng.InlineShapes.AddOLEObject(ref oClassType, ref oMissing, 
    		ref oMissing, ref oMissing, ref oMissing,
    		ref oMissing, ref oMissing, ref oMissing);
    
    	//Demonstrate use of late bound oChart and oChartApp objects to
    	//manipulate the chart object with MSGraph.
    	object oChart;
    	object oChartApp;
    	oChart = oShape.OLEFormat.Object;
    	oChartApp = oChart.GetType().InvokeMember("Application",
    		BindingFlags.GetProperty, null, oChart, null);
    
    	//Change the chart type to Line.
    	object[] Parameters = new Object[1];
    	Parameters[0] = 4; //xlLine = 4
    	oChart.GetType().InvokeMember("ChartType", BindingFlags.SetProperty,
    		null, oChart, Parameters);
    
    	//Update the chart image and quit MSGraph.
    	oChartApp.GetType().InvokeMember("Update",
    		BindingFlags.InvokeMethod, null, oChartApp, null);
    	oChartApp.GetType().InvokeMember("Quit",
    		BindingFlags.InvokeMethod, null, oChartApp, null);
    	//... If desired, you can proceed from here using the Microsoft Graph 
    	//Object model on the oChart and oChartApp objects to make additional
    	//changes to the chart.
    
    	//Set the width of the chart.
    	oShape.Width = oWord.InchesToPoints(6.25f);
    	oShape.Height = oWord.InchesToPoints(3.57f);
    
    	//Add text after the chart.
    	wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
    	wrdRng.InsertParagraphAfter();
    	wrdRng.InsertAfter("THE END.");
    
    	//Close this form.
    	this.Close();
    }
    					
  7. Κύλιση επάνω παράθυρο κώδικα. Προσθέστε το ακόλουθο γραμμή στο τέλος της λίστας χρήση οδηγίες:
    using Word = Microsoft.Office.Interop.Word;
    using System.Reflection;
    					
  8. Πατήστε F5 για να δημιουργήσετε και να εκτελέσετε το πρόγραμμα.
  9. Κάντε κλικ στο κουμπί Button1 Για να ξεκινήσετε το Word αυτοματοποίησης και να δημιουργήσετε το έγγραφο.
Αφού ολοκληρωθεί ο κώδικας, εξετάστε το έγγραφο που δημιουργήθηκε για εσάς. Το έγγραφο περιέχει δύο σελίδες μορφοποιημένες παραγράφους, πίνακες, και ένα γράφημα.

Χρήση προτύπου

Εάν χρησιμοποιείτε αυτοματοποίηση για να δημιουργήσετε έγγραφα που βρίσκονται όλα σε ένα κοινή μορφή, μπορείτε να επωφεληθείτε από την εκκίνηση της διεργασίας με ένα νέο έγγραφο με βάση ένα προδιαμορφωμένο πρότυπο. Χρησιμοποιώντας ένα πρότυπο με το Word Προγράμματος-πελάτη αυτοματισμού έχει δύο σημαντικά πλεονεκτήματα σε σχέση με τη δημιουργία ενός εγγράφου από τίποτα:
  • Μπορείτε να έχετε μεγαλύτερο έλεγχο της μορφοποίησης και τοποθέτηση αντικειμένων σε όλη τη διάρκεια των εγγράφων.
  • Μπορείτε να δημιουργήσετε τα έγγραφά σας με λιγότερο κώδικα.
Χρησιμοποιώντας ένα πρότυπο, μπορείτε να τελειοποιήσετε τη θέση των πινάκων, παραγράφους και άλλα αντικείμενα μέσα στο έγγραφο, καθώς και περιλαμβάνουν μορφοποίηση σε αυτά τα αντικείμενα. Με τη χρήση αυτοματισμού, μπορείτε να δημιουργήσετε ένα νέο έγγραφο βασίζεται στο πρότυπο με κώδικα, όπως τα ακόλουθα:
object oTemplate = "c:\\MyTemplate.dot";
oDoc = oWord.Documents.Add(ref oTemplate, ref oMissing,
	ref oMissing, ref oMissing);
				
Στο πρότυπο, μπορείτε να ορίσετε τους σελιδοδείκτες, έτσι ώστε να σας αυτοματισμού πρόγραμμα-πελάτης να συμπληρώσετε μεταβλητή κειμένου σε μια συγκεκριμένη θέση στο έγγραφο, όπως ακολουθεί:
object oBookMark = "MyBookmark";
oDoc.Bookmarks.Item(ref oBookMark).Range.Text = "Some Text Here";
				
Χρησιμοποιώντας ένα πρότυπο ένα άλλο πλεονέκτημα είναι ότι μπορείτε να δημιουργήσετε και να αποθηκεύσετε μορφοποίηση στυλ που θέλετε να ισχύουν κατά το χρόνο εκτέλεσης, ως εξής:
object oStyleName = "MyStyle";
oDoc.Bookmarks.Item(ref oBookMark).Range.set_Style(ref oStyleName);
				
- ή -
object oStyleName = "MyStyle";
oWord.Selection.set_Style(ref oStyleName);
				

Αναφορές

Για περισσότερες πληροφορίες, κάντε κλικ στους αριθμούς των άρθρων παρακάτω, για να προβάλετε τα άρθρα της Γνωσιακής Βάσης της Microsoft:
301659ΔΙΑΔΙΚΑΣΙΕΣ: Αυτοματοποίηση του Microsoft Word για να εκτελέσετε συγχώνευση αλληλογραφίας από το Visual C#.NET
302902 ΔΙΑΔΙΚΑΣΙΕΣ: Σύνδεση για διακομιστές αυτοματοποίησης του Office με Visual C#.NET
Για περισσότερες πληροφορίες, επισκεφθείτε την ακόλουθη Microsoft Τοποθεσίες Web Developer Network (MSDN):
Ανάπτυξη του Microsoft Office με το Visual Studio
.aspx http://msdn2.Microsoft.com/en-us/library/aa188489 (office.10)

Το Word του Office (MSDN Online άρθρο)
.aspx http://msdn2.Microsoft.com/en-us/library/aa201330 (office.11)

Μία λέξη περισσότερες (MSDN Online άρθρο)
.aspx http://msdn2.Microsoft.com/en-us/library/aa201332 (office.11)

Ιδιότητες

Αναγν. άρθρου: 316384 - Τελευταία αναθεώρηση: Κυριακή, 29 Μαΐου 2011 - Αναθεώρηση: 4.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Word 2002 Standard Edition
Λέξεις-κλειδιά: 
kbautomation kbhowtomaster kbmt KB316384 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:316384

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com