Guten Tag Meister der Tutorials!
Wie viele die hier schreiben habe ich ich Problem....
Alsooo....
Ich habe ein Programm das mehrere Excel(xls) Dateien zu einer zusammenfasst.
Dazu lade ich die Daten mittels OleDb in eine DataTable.
Dann schreibe ich die Daten in eine xml und diese wandle ich in eine .xls um.
Das Problem ist nun, dass wenn in Spalten nur Zahlen sind, die erste Reihe nicht übernommen wird, also wenn in Spalte A nur Zahlen sind dann fehlt in der Zelle A1 der Inhalt.
Dieser fehler entsteht schon an der Stelle, an der die Daten in die DataTable geschrieben werden. Dort hat diese Zelle den value DBNull, obwohl sie gar nicht leer ist!
Es liegt auch nicht an der Datei, da dies bei mehreren der Fall ist.
Gibt es jemanden der mir helfen kann?
Hier ist der Code der die xls in die DataTable schreibt.:
Und natürlich:
Vielen Dank für euer Intresse wenn ihr es lest und noch mehr Dank wenn ihr mir helft
Ok mitlerweile habe ich herausgefunden, dass es daran liegt da in der Spalte mehrere Dateitypen vorkommen.
Bei dem Select guckt er dann welcher Datentyp am meisten vertreten ist und alle Zellen die einen anderen Typ enthalten bekommen den Wert System.DBNull...
So wie ich das verstanden habe muss ich bei dem Select den Dateitypen den er nehmen soll vorgeben.... wie weiß ich noch nicht.. ich halte euch auf dem laufenden.
Wie viele die hier schreiben habe ich ich Problem....
Alsooo....
Ich habe ein Programm das mehrere Excel(xls) Dateien zu einer zusammenfasst.
Dazu lade ich die Daten mittels OleDb in eine DataTable.
Dann schreibe ich die Daten in eine xml und diese wandle ich in eine .xls um.
Das Problem ist nun, dass wenn in Spalten nur Zahlen sind, die erste Reihe nicht übernommen wird, also wenn in Spalte A nur Zahlen sind dann fehlt in der Zelle A1 der Inhalt.
Dieser fehler entsteht schon an der Stelle, an der die Daten in die DataTable geschrieben werden. Dort hat diese Zelle den value DBNull, obwohl sie gar nicht leer ist!
Es liegt auch nicht an der Datei, da dies bei mehreren der Fall ist.
Gibt es jemanden der mir helfen kann?
Hier ist der Code der die xls in die DataTable schreibt.:
Code:
Private Function GetExcelDataSet(ByVal excelFile As String, ByVal headers As Boolean) As DataSet
Dim ds As New DataSet()
Dim con As New OleDbConnection()
con.ConnectionString = "Data Source=" & excelFile & ";Provider=Microsoft.Jet.OLEDB.4.0;"
If headers Then
con.ConnectionString += "Extended Properties=""Excel 8.0;HDR=Yes"""
Else
con.ConnectionString += "Extended Properties=""Excel 8.0;HDR=No"""
End If
con.Open()
Dim sheets As DataTable = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
For Each sheet As DataRow In sheets.Rows
Dim tableName As String = sheet("Table_Name").ToString()
Dim sql As String = "SELECT * FROM [" & tableName & "]"
Dim adap As New OleDbDataAdapter(sql, con)
adap.Fill(ds, "DBASE")
If zaehler > 0 Then
ds.Tables("DBASE").Rows.RemoveAt(0)
End If
Next
con.Close()
Return ds
End Function
Und natürlich:
Vielen Dank für euer Intresse wenn ihr es lest und noch mehr Dank wenn ihr mir helft

Ok mitlerweile habe ich herausgefunden, dass es daran liegt da in der Spalte mehrere Dateitypen vorkommen.
Bei dem Select guckt er dann welcher Datentyp am meisten vertreten ist und alle Zellen die einen anderen Typ enthalten bekommen den Wert System.DBNull...
So wie ich das verstanden habe muss ich bei dem Select den Dateitypen den er nehmen soll vorgeben.... wie weiß ich noch nicht.. ich halte euch auf dem laufenden.
Zuletzt bearbeitet: