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
Alte URL:
/snippet/excel-auslesen-und-in-word-einfuegen/866
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
@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 http://www.dotnet-forum.de vorbei, da helfen wir dir dann gerne weiter! 🙂
Gruß, Gordon
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