Για μια έκδοση του Microsoft Visual C# .NET αυτού του άρθρου, ανατρέξτε στο θέμα 316384.
Για μια έκδοση της Microsoft Visual Basic 6.0 αυτού του άρθρου, ανατρέξτε στο θέμα 313193.
Σύνοψη
Αυτό το άρθρο βήμα προς βήμα περιγράφει πώς μπορείτε να δημιουργήσετε ένα νέο έγγραφο στο Word χρησιμοποιώντας αυτοματοποίηση από το .NET της Visual Basic.
Δείγμα κωδικού
Το δείγμα κώδικα σε αυτό το άρθρο δείχνει πώς μπορείτε να κάνετε τα εξής:
-
Εισαγάγετε παραγράφους με κείμενο και μορφοποίηση.
-
Περιηγηθείτε και τροποποιήστε διάφορες περιοχές μέσα σε ένα έγγραφο.
-
Εισαγάγετε πίνακες, μορφοποιήστε πίνακες και συμπληρώστε τους πίνακες με δεδομένα.
-
Προσθήκη γραφήματος.
Για να δημιουργήσετε ένα νέο έγγραφο του Word χρησιμοποιώντας αυτοματοποίηση από το .NET της Visual Basic, ακολουθήστε τα παρακάτω βήματα:
-
Εκκινήστε το Microsoft Visual Studio .NET. Στο μενού Αρχείο, κάντε κλικ στην επιλογή Δημιουργία και, στη συνέχεια, κάντε κλικ στην επιλογή Έργο. Στην περιοχή Τύποι έργων, κάντε κλικ στην επιλογή Έργα της Visual Basic και, στη συνέχεια, κάντε κλικ στην επιλογή Εφαρμογή των Windows στην περιοχή Πρότυπα. Η φόρμα1 δημιουργείται από προεπιλογή.
-
Προσθέστε μια αναφορά στη Βιβλιοθήκη αντικειμένων του Microsoft Word. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
-
Στο μενού Έργο, κάντε κλικ στην επιλογή Προσθήκη αναφοράς.
-
Στην καρτέλα COM, εντοπίστε τη Βιβλιοθήκη αντικειμένων του Microsoft Word και κάντε κλικ στο κουμπί Επιλογή.
Σημείωση Το Microsoft Office 2003 και νεότερες εκδόσεις του Office περιλαμβάνουν κύρια συγκροτήματα interop (PIAs). Το Microsoft Office XP δεν περιλαμβάνει PIAs, αλλά μπορεί να γίνει λήψη τους.
-
Κάντε κλικ στο κουμπί OK στο παράθυρο διαλόγου Προσθήκη αναφορών για να αποδεχτείτε τις επιλογές σας. Εάν εμφανιστεί ένα μήνυμα για τη δημιουργία περιτυλίγματος για τις βιβλιοθήκες που επιλέξατε, κάντε κλικ στο κουμπί Ναι.
-
-
Στο μενού Προβολή, επιλέξτε Εργαλειοθήκη για να εμφανίσετε την Εργαλειοθήκη και, στη συνέχεια, προσθέστε ένα κουμπί στη Φόρμα1.
-
Κάντε διπλό κλικ στο Κουμπί1. Εμφανίζεται το παράθυρο κώδικα για τη φόρμα.
-
Στο παράθυρο κώδικα, αντικαταστήστε τον παρακάτω κώδικα
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click End Sub
Με:
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim oWord As Word.Application Dim oDoc As Word.Document Dim oTable As Word.Table Dim oPara1 As Word.Paragraph, oPara2 As Word.Paragraph Dim oPara3 As Word.Paragraph, oPara4 As Word.Paragraph Dim oRng As Word.Range Dim oShape As Word.InlineShape Dim oChart As Object Dim Pos As Double 'Start Word and open the document template. oWord = CreateObject("Word.Application") oWord.Visible = True oDoc = oWord.Documents.Add 'Insert a paragraph at the beginning of the document. oPara1 = oDoc.Content.Paragraphs.Add oPara1.Range.Text = "Heading 1" oPara1.Range.Font.Bold = True oPara1.Format.SpaceAfter = 24 '24 pt spacing after paragraph. oPara1.Range.InsertParagraphAfter() 'Insert a paragraph at the end of the document. '** \endofdoc is a predefined bookmark. oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range) oPara2.Range.Text = "Heading 2" oPara2.Format.SpaceAfter = 6 oPara2.Range.InsertParagraphAfter() 'Insert another paragraph. oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range) oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:" oPara3.Range.Font.Bold = False 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. Dim r As Integer, c As Integer oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\endofdoc").Range, 3, 5) oTable.Range.ParagraphFormat.SpaceAfter = 6 For r = 1 To 3 For c = 1 To 5 oTable.Cell(r, c).Range.Text = "r" & r & "c" & c Next Next oTable.Rows.Item(1).Range.Font.Bold = True oTable.Rows.Item(1).Range.Font.Italic = True 'Add some text after the table. 'oTable.Range.InsertParagraphAfter() oPara4 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range) 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. oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\endofdoc").Range, 5, 2) oTable.Range.ParagraphFormat.SpaceAfter = 6 For r = 1 To 5 For c = 1 To 2 oTable.Cell(r, c).Range.Text = "r" & r & "c" & c Next Next oTable.Columns.Item(1).Width = oWord.InchesToPoints(2) 'Change width of columns 1 & 2 oTable.Columns.Item(2).Width = oWord.InchesToPoints(3) 'Keep inserting text. When you get to 7 inches from top of the 'document, insert a hard page break. Pos = oWord.InchesToPoints(7) oDoc.Bookmarks.Item("\endofdoc").Range.InsertParagraphAfter() Do oRng = oDoc.Bookmarks.Item("\endofdoc").Range oRng.ParagraphFormat.SpaceAfter = 6 oRng.InsertAfter("A line of text") oRng.InsertParagraphAfter() Loop While Pos >= oRng.Information(Word.WdInformation.wdVerticalPositionRelativeToPage) oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd) oRng.InsertBreak(Word.WdBreakType.wdPageBreak) oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd) oRng.InsertAfter("We're now on page 2. Here's my chart:") oRng.InsertParagraphAfter() 'Insert a chart and change the chart. oShape = oDoc.Bookmarks.Item("\endofdoc").Range.InlineShapes.AddOLEObject( _ ClassType:="MSGraph.Chart.8", FileName _ :="", LinkToFile:=False, DisplayAsIcon:=False) oChart = oShape.OLEFormat.Object oChart.charttype = 4 'xlLine = 4 oChart.Application.Update() oChart.Application.Quit() 'If desired, you can proceed from here using the Microsoft Graph 'Object model on the oChart object to make additional changes to the 'chart. oShape.Width = oWord.InchesToPoints(6.25) oShape.Height = oWord.InchesToPoints(3.57) 'Add text after the chart. oRng = oDoc.Bookmarks.Item("\endofdoc").Range oRng.InsertParagraphAfter() oRng.InsertAfter("THE END.") 'All done. Close this form. Me.Close() End Sub
-
Προσθέστε τον παρακάτω κώδικα στο επάνω μέρος της τοποθεσίας Form1.vb:
Imports Word = Microsoft.Office.Interop.Word
-
Πατήστε το πλήκτρο F5 για να δημιουργήσετε και να εκτελέσετε το πρόγραμμα.
Αφού ολοκληρωθεί ο κώδικας, εξετάστε το έγγραφο που έχει δημιουργηθεί για εσάς. Το έγγραφο περιέχει δύο σελίδες μορφοποιημένων παραγράφων, πινάκων και ενός γραφήματος.
Χρήση προτύπου
Εάν χρησιμοποιείτε αυτοματοποίηση για τη δημιουργία εγγράφων που είναι όλα σε μια κοινή μορφή, μπορείτε να επωφεληθείτε από την έναρξη της διαδικασίας με ένα νέο έγγραφο που βασίζεται σε ένα προ-μορφοποιημένο πρότυπο. Η χρήση ενός προτύπου με το πρόγραμμα-πελάτη αυτοματοποίησης Word έχει δύο σημαντικά πλεονεκτήματα σε σχέση με τη δημιουργία ενός εγγράφου από το τίποτα:
-
Μπορείτε να έχετε μεγαλύτερο έλεγχο στη μορφοποίηση και την τοποθέτηση των αντικειμένων σε όλα τα έγγραφά σας.
-
Μπορείτε να δημιουργήσετε τα έγγραφά σας με λιγότερο κώδικα.
Χρησιμοποιώντας ένα πρότυπο, μπορείτε να ρυθμίσετε με ακρίβεια τη θέση των πινάκων, των παραγράφων και άλλων αντικειμένων μέσα στο έγγραφο, καθώς και να συμπεριλάβετε μορφοποίηση σε αυτά τα αντικείμενα. Χρησιμοποιώντας αυτοματοποίηση, μπορείτε να δημιουργήσετε ένα νέο έγγραφο που βασίζεται στο πρότυπό σας με κώδικα όπως ο εξής:
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
Στο πρότυπό σας, μπορείτε να ορίσετε σελιδοδείκτες, έτσι ώστε το πρόγραμμα-πελάτης αυτοματισμού να μπορεί να συμπληρώσει μεταβλητό κείμενο σε μια συγκεκριμένη θέση στο έγγραφο, ως εξής:
oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"
Ένα άλλο πλεονέκτημα της χρήσης ενός προτύπου είναι ότι μπορείτε να δημιουργήσετε και να αποθηκεύσετε στυλ μορφοποίησης που θέλετε να εφαρμόσετε κατά την εκτέλεση, ως εξής:
oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"
-Ή-
oWord.Selection.Style = "MyStyle"
Αναφορές
Για περισσότερες πληροφορίες σχετικά με τη χρήση του Visual Basic .NET για την αυτοματοποίηση του Microsoft Word, κάντε κλικ στον αριθμό του άρθρου που ακολουθεί για να προβάλετε το άρθρο στη Γνωσιακή βάση της Microsoft:
301656 Πώς μπορείτε να αυτοματοποιήσετε το Word ώστε να εκτελεί συγχώνευση αλληλογραφίας από το .NET της Visual Basic