Eine Zelle aus Excel auslesen

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von kleinM.

    Eine Zelle aus Excel auslesen

    Hi Leute
    Ich möchte von VB eine Zelle aus Excel auslesen und anzeigen lassen. Den Pfad der Excel-Datei habe ich. Wie kann ich Bei Label1 den Text C3 anzeigen lassen? Und wie kann ich überprüfen ob der Text in Textbox1 gleich der Text von A3 ist?
    Hast du schon gegoogelt? :D
    Ich habs gemacht und der erste Vorschlag stammt aus dem Forum:
    [VB.NET] Exceltabelle in Datagridview importieren
    Das beantwortet nicht deine Fragen direkt (ich weiß ;) ), aber sollte dir helfen...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kleinM“ ()

    VB.NET-Quellcode

    1. Dim sFilePath, sFileName As String
    2. Dim sSlash As Single
    3. With OpenFileDialog1
    4. .Title = "Importieren"
    5. .InitialDirectory = "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Aufgabe 17_04_2009 Herr Daub\Daten"
    6. .Filter = "Exceltabellen (*.xls)|*.xls"
    7. .ShowDialog()sSlash = InStrRev(.FileName, "\")
    8. sFilePath = Mid(.FileName, 1, sSlash)
    9. sFileName = Mid(.FileName, sSlash + 1, Len(.FileName))
    10. End With
    11. Dim strConnection As System.Data.OleDb.OleDbConnection = Nothing
    12. Dim myPath As String = sFilePath & sFileName
    13. Dim objDataSet As System.Data.DataSet
    14. Dim objAdapter As System.Data.OleDb.OleDbDataAdapter
    15. strConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source='" & myPath & " '; " & "Extended Properties=Excel 8.0;")
    16. objAdapter = New System.Data.OleDb.OleDbDataAdapter("select * from [sheet1$]", strConnection)objDataSet = New System.Data.DataSet
    17. objAdapter.Fill(objDataSet)
    18. DataGridView1.DataSource = objDataSet.Tables(0).DefaultView
    19. strConnection.Close()
    20. Catch ex As Exception
    21. strConnection.Close()

    Wo wird hier denn der Pfad genutzt? ist mypath der pfad?
    ich hab den code mal angepasst:

    VB.NET-Quellcode

    1. Dim strConnection As System.Data.OleDb.OleDbConnection = Nothing
    2. Dim objDataSet As System.Data.DataSet
    3. Dim objAdapter As System.Data.OleDb.OleDbDataAdapter
    4. Dim myPath As IO.DirectoryInfo = New IO.DirectoryInfo(Application.StartupPath)
    5. strConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source='" & myPath.FullName & " '; " & "Extended Properties=Excel 8.0;")
    6. objAdapter = New System.Data.OleDb.OleDbDataAdapter("select * from [sheet1$]", strConnection)objDataSet = New System.Data.DataSet
    7. objAdapter.Fill(objDataSet)
    8. DataGridView1.DataSource = objDataSet.Tables(0).DefaultView
    9. strConnection.Close()
    10. strConnection.Close()

    jetzt hab ich noch 2 probleme:
    • Fehler 2 "DataGridView1" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden.
    • Fehler 1 "end of"-Anweisung erwartet.
    Bei fehler 2 kann ich da einfach DataGridView1.DataSource = objDataSet.Tables(0).DefaultView löschen? Und was mach ich bei der 1?

    VB.NET-Quellcode

    1. Dim strConnection As System.Data.OleDb.OleDbConnection = Nothing
    2. Dim objDataSet As System.Data.DataSet
    3. Dim objAdapter As System.Data.OleDb.OleDbDataAdapter
    4. Dim myPath As IO.DirectoryInfo = New IO.DirectoryInfo(Application.StartupPath)
    5. strConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source='" & myPath.FullName + "\Wörter.xls" & " '; " & "Extended Properties=Excel 8.0;")
    6. objAdapter = New System.Data.OleDb.OleDbDataAdapter("select * from [Tabelle1]", strConnection)
    7. objDataSet = New System.Data.DataSet
    8. objAdapter.Fill(objDataSet)
    9. DataGridView1.DataSource = objDataSet.Tables(0).DefaultView
    10. strConnection.Close()
    11. strConnection.Close()

    alles getan. Nun wenn ich es starte kommt immer die Fehlermeldung Tabelle1 konnte nicht gefunden werden. und wie lass ich jetzt eine bestimmte Zelle bei Label1 anzeigen?
    also muss ich

    VB.NET-Quellcode

    1. objAdapter = New System.Data.OleDb.OleDbDataAdapter("select * from [Tabelle1]", strConnection)
    durch

    VB.NET-Quellcode

    1. DataGridView1.Item(1, 3)
    ersetzen? Dann kommt aber folgender Fehler:
    Fehler 1 Eigenschaftenzugriff muss der Eigenschaft zugewiesen werden oder deren Wert verwenden.

    Nein... Darf ich fragen, ob du grob verstanden hast, was da passiert?
    Ich war (und bin) ein Anfänger und weiß wie schwer man sich tut... ;)

    Mit

    VB.NET-Quellcode

    1. DataGridView1.Item(1, 3)

    liest du die ausgwählte Zeile in deinem Datagridview aus.

    Mit

    VB.NET-Quellcode

    1. objAdapter = New System.Data.OleDb.OleDbDataAdapter("select * from [Tabelle1]", strConnection)

    sagst du, das "objAdapter" ein neues OleDb-Objekt ist und gibst ihm den Befehl bestimmte daten auszuwählen ("select") und gibst ihm die Verbindung.

    Die "Tabelle1", aus der "objAdapter" die Daten ziehen soll gibt es bei dir auf dem Rechner nicht... ^^
    Eigentlich ist es nicht so gut, ohne Grundlagenkenntnisse das Thema anzugehen... :wacko:
    Ersetze als erste mal "Tabelle1" mit dem dem Namen, der Tabelle, welche dein Pfad angibt...

    Schau dir diese Seite genau an, dort wird der Excel-Zugriff detailliert, kurz und sauber beschrieben:
    msdn.microsoft.com/de-de/library/cc464080(v=vs.71).aspx

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kleinM“ ()