Τρόπος αυτοματοποίησης του Word από τη Visual Basic .NET για να δημιουργήσετε ένα νέο έγγραφο

Για την Microsoft Visual C# .NET έκδοση αυτού του άρθρου, ανατρέξτε στην ενότητα 316384 .

Για την Microsoft Visual Basic 6.0 έκδοση αυτού του άρθρου, ανατρέξτε στην ενότητα 313193 .

Σύνοψη

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

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

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

      Σημείωση Microsoft Office 2003 και νεότερες εκδόσεις του Office περιλαμβάνουν πρωτεύοντα διαλειτουργικότητα (PIA). Microsoft Office XP δεν περιλαμβάνει στοιχεία PIA, αλλά ενδέχεται να ληφθούν.
      Για περισσότερες πληροφορίες σχετικά με τα στοιχεία PIA του Office XP, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

      328912 το Microsoft Office XP κύρια σύνολα διαλειτουργικότητας (PIA) είναι διαθέσιμο για λήψη

    3. Κάντε κλικ στο κουμπί OK στο πλαίσιο διαλόγου " Προσθήκη αναφορών " για να αποδεχτείτε τις επιλογές σας. Εάν σας ζητηθεί να δημιουργήσετε προγράμματα εξομοίωσης για τις βιβλιοθήκες που επιλέξατε, κάντε κλικ στο κουμπί " Ναι".
  3. Στο μενού Προβολή , επιλέξτε εργαλειοθήκη για να εμφανίσετε την εργαλειοθήκη και στη συνέχεια να προσθέσετε ένα κουμπί Form1.
  4. Κάντε διπλό κλικ στο Button1. Εμφανίζεται το παράθυρο κώδικα της φόρμας.
  5. Στο παράθυρο κώδικα, αντικαταστήστε τον ακόλουθο κώδικα
        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
  6. Προσθέστε τον ακόλουθο κώδικα στην κορυφή της Form1.vb:
    Imports Word = Microsoft.Office.Interop.Word
  7. Πατήστε 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 για να εκτελέσετε συγχώνευση αλληλογραφίας από τη Visual Basic .NET

Για περισσότερες πληροφορίες, ανατρέξτε στις ακόλουθες τοποθεσίες της Microsoft Developer Network (MSDN) στο Web:
Ανάπτυξη του Microsoft Office με το Visual Studio
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx

Το Word στο γραφείο
http://msdn2.microsoft.com/en-us/library/aa201330(office.11).aspx

Μία λέξη περισσότερες
http://msdn2.microsoft.com/en-us/library/aa201332(office.11).aspx
Ιδιότητες

Αναγνωριστικό άρθρου: 316383 - Τελευταία αναθεώρηση: 16 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια