Hallo zusammen,
ich lese aus einer Excel-datei Umsatzwerte in eine DataTable. Dieses Table wird dann in einem Datagrid angezeigt (insgesamt ca. 15000 Sätze). Das einlesen und anzeigen klappt gut.
Einige der Werte möchte ich gerne direkt beim einlesen Umwandeln (am Besten in eine Währung bzw Double) bzw berechnungen durchführen. Ich habe das ganze schon mal zu Fuß gemacht (also jede Row einzeln gelesen und die Werte einer Variable zugeordnet und die Row zum Table hinzugefügt) das allerdings dauert zu lange (> 15 Minuten)
So mache ich das zur Zeit und mit der Geschwindigkeit bin ich zufrieden (ca. 20sec). Nur die Monatswerte OKT-SEP und gesJahr sollten Umsätze sein. Ich habe bereits schon CAST(F6 as double), Cdbl(F6) usw. versucht, leider bekomme ich für alle eine Fehlermeldung. Hat jemand noch einen Tipp wie das klappen könnte ?
Danke schon mal im voraus
mark01
ich lese aus einer Excel-datei Umsatzwerte in eine DataTable. Dieses Table wird dann in einem Datagrid angezeigt (insgesamt ca. 15000 Sätze). Das einlesen und anzeigen klappt gut.
Einige der Werte möchte ich gerne direkt beim einlesen Umwandeln (am Besten in eine Währung bzw Double) bzw berechnungen durchführen. Ich habe das ganze schon mal zu Fuß gemacht (also jede Row einzeln gelesen und die Werte einer Variable zugeordnet und die Row zum Table hinzugefügt) das allerdings dauert zu lange (> 15 Minuten)
Code:
oSheet = oBook.Worksheets(1) aConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & pFilename & ";Extended Properties=""Excel 12.0;HDR=NO;""" Dim query As String = "Select F1 as Kunde, F3 as Artikel, 'D' as Herk, '" & pJahr & "' as Jahr, CAST(F5 as Double) as Okt, F6 as Nov, F7 as Dez, F8 as Jan, F9 as Feb, F10 as Mrz, F11 as Apr, F12 as Mai, F13 as Jun, F14 as Jul, F15 as Aug, F16 as Sep, F17 as gesJahr, '1' As Faktor, '" & admName & "' as ADM from [" & oBook.ActiveSheet.Name & "$] WHERE F1 LIKE '7%' " Dim con As OleDbConnection = New OleDbConnection(aConnection) con.Open() Dim command As OleDb.OleDbCommand = New OleDbCommand(query, con) Dim adapter As OleDbDataAdapter = New OleDbDataAdapter(command) adapter.Fill(dt)
Danke schon mal im voraus
mark01
Comment