Feedback

VB - Excel auslesen und in Word einfügen

Veröffentlicht von am 5/19/2008
(1 Bewertungen)
Excelzelle wird ausgelesen und in eine
Textmarke in Word eingefügt.
'                       Demonstration einer Excel + Word Kombination in VB.net
'                       Hierzu wird eine Excelzelle ausgelesen und an eine Textmarke in Word weitergegeben.
'                       (C)   Heiko Franke Dipl. Wirtschaftsinformatiker / FH 
'                       h.franke@wirtschaftssoft.de

Imports System.Runtime.InteropServices
Imports Microsoft.Office.Interop.Word
Imports System.IO
Public Class Form1
    Dim strFileName As String
    Dim txt As String

    Private Function word_doc(ByVal textmarke As String, ByVal textm_value As String)
        Dim word As New Microsoft.Office.Interop.Word.Application
        Dim doc As Microsoft.Office.Interop.Word.Document
        Try
            'word.Visible = (True) 'Word sehen zum Test?
            doc = word.Documents.Open("c:\\schreiben.dot")
            doc.Activate()
            If doc.Range.Bookmarks.Exists(textmarke) Then
                doc.Bookmarks().Item(textmarke).Range.Text = textm_value
            Else
                MessageBox.Show("Textmarke nicht vorhanden!")
            End If
            doc.SaveAs("c:\\test.doc")
            doc.Close()
            MessageBox.Show("Datei erstellt")
        Catch ex As IOException
            MessageBox.Show("Datei am deklarierten Ort nicht vorhanden.")
        Finally
            word.Application.Quit()
        End Try
        Return (0)
    End Function

    Function excel(ByVal row As String)
        Dim Excel1 As New Microsoft.Office.Interop.Excel.Application
        Try
            Excel1.Workbooks.Open("C:\datei.xls")
            'Excel1.Visible = True ' zum testen ganz hilfreich!
            txt = Excel1.Range(row).Value()
            ' MessageBox.Show(txt)
        Catch ex As IOException
            MessageBox.Show("Datei am deklarierten Ort nicht vorhanden.")
        Finally
            Excel1.Application.Quit()
        End Try
        Return (0)
    End Function

    Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' Funktionsaufrufe
        excel("A2")                                        ' excel (Zelle)
        word_doc("Kundenname", txt)      ' dok( Textmarke, Inhalt)
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    End Sub
End Class
Abgelegt unter Word, Excel, vb.net.

3 Kommentare zum Snippet

cheaptrick_la schrieb am 12/11/2009:
Hallo,

ich suche nach einem Snippet, das eine bestimmte Mappe einer Excel-Datei in eine SQL-Server-Datenbanktabelle kopiert.
Die Excel-Datei wird monatlich aus SAP erzeugt und die jeweils benötigte hat immer einen anderen Namen aber die Mappen-Reihenfolge bleibt erhalten, so dass ich die Mappe über ihre Nummer ansprechen muss. Erschwerend kommt noch hinzu das einige Feldnamen nicht den SQL-Server (2008) Namenskonventionen entsprechen.

Kann mir da jemand weiter helfen?
Programmiersprache sollte VB.net oder C# sein.

Gruß

cheapy
Gordon Breuer schrieb am 12/11/2009:
@cheapy: Hier ist ein eher ungeeigneter Ort um solche Fragen zu stellen, zumal es kaum einer sehen wird. Schau aber doch mal auf der Partnerseite www.dotnet-forum.de vorbei, da helfen wir dir dann gerne weiter! :)

Gruß, Gordon
Bilko schrieb am 3/25/2010:
Hey Heiko
vllt. kannst du mir helfen. Und zwar: wenn ich den Code übernehme, dann sind relativ viele Dinge nicht definiert (Microsoft.Office.Interop.Word.Application; Microsoft.Office.Interop.Word.Document; Microsoft.Office.Interop.Excel.Application)

Die Programme von Office sind jedoch installiert. Woran kann das liegen? (Ist version 2003 von Office und habs vor dem VB 2008 installiert)

Danke schon mal im Vorraus

 

Logge dich ein, um hier zu kommentieren!