Vorab ich arbeite mit VisualStudio 2015/2017 VB.NET, sollte dies der falsche Forum bereich sein sorry (neu hier)
Hallo, ich arbeite an einem programm welches Excel dateien einlesen soll (und noch mehr). Ich möchte über einen FileSelector die Excel Datei auswählen lassen und dann automatisch in ein Datagridview eintragen lassen. Dies Mache ich mit folgendem Code:
(gekürtzte Version des Codes, es würde nur noch ein invoke zum eintragen der strings in das Datagridview folgen)
Das Problem ist dass diese Methode wirklich sehr langsam ist. Die Alternative ist dass ich es über den ODBC treiber mache. Dieser ist aber standart mäßig nicht Installiert. Gibt es eine schnellere möglichkeit die ohne ODBC zu realisieren bzw eine portable .dll Version von ODBC o.ä. ?
Vielen dank im Voraus
EDIT:
Die antwort von RodFromGermany hat mir geholfen , danke ;D
Hallo, ich arbeite an einem programm welches Excel dateien einlesen soll (und noch mehr). Ich möchte über einen FileSelector die Excel Datei auswählen lassen und dann automatisch in ein Datagridview eintragen lassen. Dies Mache ich mit folgendem Code:
VB.NET-Quellcode
- Dim xlApp As Excel.Application
- Dim xlWorkBook As Excel.Workbook
- Dim xlWorkSheet As Excel.Worksheet
- Dim range As Excel.Range
- Dim rCnt As Integer
- xlApp = New Excel.Application
- xlWorkBook = xlApp.Workbooks.Open(path)
- xlWorkSheet = xlWorkBook.Worksheets(1)
- range = xlWorkSheet.UsedRange
- For rCnt = 1 To range.Rows.Count
- Dim one As String = ""
- Dim two As String = ""
- Dim three As String = ""
- Try
- one = CType(range.Cells(rCnt, 1), Excel.Range).Value.ToString
- Catch
- End Try
- Try
- two = CType(range.Cells(rCnt, 2), Excel.Range).Value.ToString
- Catch
- End Try
- Try
- three = CType(range.Cells(rCnt, 3), Excel.Range).Value.ToString
- Catch
- End Try
- Next
- xlWorkBook.Close()
- xlApp.Quit()
(gekürtzte Version des Codes, es würde nur noch ein invoke zum eintragen der strings in das Datagridview folgen)
Das Problem ist dass diese Methode wirklich sehr langsam ist. Die Alternative ist dass ich es über den ODBC treiber mache. Dieser ist aber standart mäßig nicht Installiert. Gibt es eine schnellere möglichkeit die ohne ODBC zu realisieren bzw eine portable .dll Version von ODBC o.ä. ?
Vielen dank im Voraus
EDIT:
Die antwort von RodFromGermany hat mir geholfen , danke ;D
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „leschi“ ()