Daten von VB.NET nach Excel einlesen


Vika89

Grünschnabel
Hallo zusammen,

ich bin mittlerweile von ganzen googeln und ausprobieren,was bis jetzt zu keinem Ziel geführt hat, verzweifelt.

Und zwar.Ich arbeite momentan mit VS 2010.Ich habe eine Form erstellt,aus welcher die Daten,wenn sie komplett ausgefüllt ist,über ein Button klick nach Excel exportiert werden und danach dort gespeichert oder gedruckt werden.
Mein Problem ist die Daten nach Excel einzulesen :-(.
Also ich bin schon soweit dass ich das Workbook,das Worksheet und natürlich die App ganz gut über den ButtonClick öffnen kann und wenn ich alles schließe wird sogar der Excel Prozess beendet!Ich kann auch schon einige Sachen in Excel einlesen.Jedoch wollte ich eigentlich eine Schleife machen,die Überprüft welche zBsp. CheckBoxen angeklickt wurden und diese dann auch mit dem ButtonCklick in der Excel Tabelle einfügt.

Ich bin leider jetzt nach tagelangen suchne und ausprobieren auf kein richtiges Ergebnis gekommen,deswegen hoffe ich hier um einen Rat!

PS: Ich muss dazu sagen dass ich noch ein blutiger Anfänger in VB.NET bin :(
Ich bedanke mich im Voraus

Gruß

Mein Code :
Code:
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim xlsApp As New Microsoft.Office.Interop.Excel.Application
            Dim xlsTabelle As Microsoft.Office.Interop.Excel.Workbook

            xlsApp = Microsoft.VisualBasic.CreateObject("Excel.Application")
            xlsApp.Visible = True

            xlsTabelle = xlsApp.Workbooks.Open("C:Pfad")

            Dim xlsTa_belle As Microsoft.Office.Interop.Excel.Worksheet
            xlsTa_belle = xlsTabelle.Worksheets(1)

            xlsTabelle.Range("E3:I3").Value = TextBox1.Text
            xlsTa_belle.Range("E5:I5").Value = TextBox2.Text
            xlsTa_belle.Range("E7:I7").Value =(TextBox3.Text & "," &Chr(160) & ComboBox.Text)
            xlsTa_belle.Range("E9:I9").Value = DateTimePicker1.Value

            xlsTa_belle.CheckBox1.value = True

            xlsTa_belle.CheckBoxM1.value = True
            xlsTa_belle.CheckBoxM2.value = True
            xlsTa_belle.CheckBoxM3.value = True
            xlsTa_belle.CheckBoxM4.value = True

            xlsTabelle.SaveAs("C:Pfad")
            If System.IO.File.Exists("C:Pfad") Then
                System.IO.File.Delete("C:Pfad")
            Else
                xlsApp.SaveAs("C:Pfad")

            End If

            xlsTabelle.Close(True)
            xlsTabelle = Nothing

            xlsApp.Quit()
            xlsApp = Nothing

            System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsApp)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Sub
 
Zuletzt bearbeitet:

Vika89

Grünschnabel
Hallo nochmal,
ich habe noch ein Versuch gestartet die CheckedListBox auszulesen und in Excel einzulesen,jedoch hats leider nicht geklappt ;(
Vielleicht seht ihr warum ich gescheitert bin?!

hier die Codezeile:

CheckedListBox1.Items("0").Checked = xlsTa_belle.CheckBox1.value = True
CheckedListBox1.Items("1").Checked = xlsTa_belle.CheckBox2.value = True


Ich bedanke mich im Vorraus

Gruß
 

DrSoong

Iss was, Doc!
Mit einer Zeile wie
Visual Basic:
CheckedListBox1.Items("0").Checked = xlsTa_belle.CheckBox1.value = True
wirst du nur Fehler bekommen, gleich zwei Gleich-Zeichen funktionieren hier nicht.

Du könntest das ganze entweder mit einer If/Then-Abfrage durchgehen:
Visual Basic:
If CheckedListBox1.GetItemChecked(0) = True Then xlsTa_belle.CheckBox1.value = True 'Für das Item 0 der CheckedListbox
oder das ganze vergleichen machen:
Visual Basic:
xlsTa_belle.CheckBox1.value = CheckedListBox1.GetItemChecked(0) 'Für das Item 0 der CheckedListbox


Der Doc!
 

Vika89

Grünschnabel
Ich Habe doch noch eine kurze Frage,
also ich habe das jetzt durch den Vergleich gelöst.
Welche Variante ist denn eigentlich besser,bzw Fehlerärmer..:)?

Gruß
 

DrSoong

Iss was, Doc!
Kommt auf dein Anforderungsprofil an. Wenn der Wert, denn du schreiben willst das gleiche Format hat, wie der, den du ausliest (in deinem Fall sind beide Boolean-Werte, also True/False), ist die zweite Variante eleganter, wenn die Formate unterschiedlich sind (z.B. du liest Boolean aus, willst aber in die Zelle eine Zahle schreiben), musst du Variante 1 nehmen. Welche die schnellere ist, kannst du dir austesten. Schlussendlich ist es in deinem Fall auch eine persönliche Entscheidung.


Der Doc!
 

Vika89

Grünschnabel
Danke :),
also hab ich mich intuitiv richtig,für die 2te Variante entschieden.
Da Beides Boolean-Werte sind.:)

Gruß
 

Forum-Statistiken

Themen
272.356
Beiträge
1.558.615
Mitglieder
187.831
Neuestes Mitglied
gorke