Hallo. Ich weiß das Thema findet man im Netz und auch hier zuhauf. Aber ich bekomms trotzdem nicht hin.
Ziel ist es, eine Exceldatei (xls und xlsx) in ein DGV zu importieren. Egal ob direkt hinein, oder über ein DataSet.
Mehr soll mit der Excel Datei nicht passieren, nur Einesen ins DGV.
Jedoch sollte das ganze möglich sein, ohne das Office, oder ein anders Hilfsprogramm auf dem ausführenden Computer installiert ist.
Das ganze sollte funktionieren mithilfe des OleDbAdapters.
Aber mein Makro bricht mit dem Fehler:
Das klingt für mich auch irgendwie so, als müsste ich noch irgendwas installieren (auch wenn hier auf dem PC aktuell Office installiert ist).
Hier der Code:
Außerdem habe ich mal schnell ein Demoprojekt gebastelt und hier im Dbug Ordner eine xls und eine xlsx reingeschmissen.
Beide Exceltabellen sind von A1 bis F3 mit den jeweiligen Zellenbezeichnungen beschrieben. Also A1, B1, A2, B2 usw.
Edit:
und eine Frage habe ich zu folgender Codezeile:
gehören hier nicht eigentlich die "+" durch ein "&" ersetzt?
Ziel ist es, eine Exceldatei (xls und xlsx) in ein DGV zu importieren. Egal ob direkt hinein, oder über ein DataSet.
Mehr soll mit der Excel Datei nicht passieren, nur Einesen ins DGV.
Jedoch sollte das ganze möglich sein, ohne das Office, oder ein anders Hilfsprogramm auf dem ausführenden Computer installiert ist.
Das ganze sollte funktionieren mithilfe des OleDbAdapters.
Aber mein Makro bricht mit dem Fehler:
System.InvalidOperationException: "Der 'Microsoft.ACE.OLEDB.12.0'-Provider ist nicht auf dem lokalen Computer registriert."
ab.Das klingt für mich auch irgendwie so, als müsste ich noch irgendwas installieren (auch wenn hier auf dem PC aktuell Office installiert ist).
Hier der Code:
VB.NET-Quellcode
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim MyConnection As System.Data.OleDb.OleDbConnection
- Dim dataSet As System.Data.DataSet
- Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
- 'Open File Dialog zum öffnen der Exceldatei
- Dim Path As String
- Using OFD As New OpenFileDialog With {.Filter = "Excel Dateien|*.xls;*.xlsx", .Title = "Rechnung auswählen"}
- If OFD.ShowDialog <> 1 Then Exit Sub
- Path = OFD.FileName
- End Using
- MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path + ";Extended Properties=Excel 12.0;")
- MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection)
- dataSet = New System.Data.DataSet
- MyCommand.Fill(dataSet)
- DataGridView1.DataSource = dataSet.Tables(0)
- MyConnection.Close()
- End Sub
Außerdem habe ich mal schnell ein Demoprojekt gebastelt und hier im Dbug Ordner eine xls und eine xlsx reingeschmissen.
Beide Exceltabellen sind von A1 bis F3 mit den jeweiligen Zellenbezeichnungen beschrieben. Also A1, B1, A2, B2 usw.
Edit:
und eine Frage habe ich zu folgender Codezeile:
gehören hier nicht eigentlich die "+" durch ein "&" ersetzt?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DerSmurf“ ()