2017-09-27 108 views
-1

我正在導入一個excel文件並填充數據集的內容。這是第一個功能我寫:OleDBAdapter沒有正確填充數據集

Public Function ReadXLFile(ByVal FileName As String) As DataSet 
     Dim MyConnection As System.Data.OleDb.OleDbConnection 
     Dim Ds As System.Data.DataSet 
     Dim MyAdapter As System.Data.OleDb.OleDbDataAdapter 
     MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FileName & ";Extended Properties='Excel 8.0;HDR=YES;';") 
     MyAdapter = New System.Data.OleDb.OleDbDataAdapter("Select * from [Sheet1$]", MyConnection) 
     Ds = New System.Data.DataSet 
     MyAdapter.Fill(Ds) 
     Return Ds 
    End Function 

我現在面臨的問題是,對於某些細胞,該數據集不投入的價值,這似乎是對某些類型的excel表突出。我在excel工作表中有一行以橙色突出顯示(或在某些情況下顯示爲紅色)。它不會讀取第一列。例如,在Excel工作表它將具有

1234鮑勃·瓊斯450 72

它將讀鮑勃·瓊斯和之後它的一切,但第一小區,1234,它根本不會閱讀,在該數據集該單元格留空。對於未突出顯示的行或第一列未突出顯示的行,可以完美地讀取數據。

附加信息: 我上傳的文件是.xls文件,Microsoft Excel 97-2003。

+0

是第一個細胞從不讀取任何行?第一列是否包含混合類型的值?如果是這種情況,在連接字符串中設置IMEX會很有幫助。檢查[Excel在YoursAndMyIdeas上閱讀](https://yoursandmyideas.com/2011/02/05/how-to-read-or-write-excel-file-using-ace-oledb-data-provider/) –

+0

它會正確讀取一些行。所有的行都遵循相同的格式:1234 Bob Jones 40 32第一列總是填充4位數字。唯一一次它不正確地閱讀列,看起來是如果突出顯示是黃色或紅色,這很奇怪,因爲綠色突出顯示的行它讀得很好。 – yithril

+0

工作完美,謝謝!這很奇怪,因爲第一個單元格是一個整數而不是混合類型。好吧。 – yithril

回答