Feedback

Excel auslesen und in Word einfügen

Sprache: VB

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
'                       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

3 Kommentare

  1. 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

  2. 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