我目前正試圖從成千上萬的Excel文件中提取某些數據。但是,這個問題讓我非常瘋狂,而且我正在緊張的工作中,在短時間內完成所有這些工作。使用OleDB獲取Excel工作表數據,但它「隨機」不讀取一行的單元格數據
問題是,它似乎沒有檢索所有的數據,特別是這些「選項」列,因爲我稱之爲。它應該一直到-10這個特定的表。這些是整張紙上唯一有時無法讀入的值。它們有時會傾斜45度角,但如果在讀取文件之前手動更改其方向,似乎沒有什麼區別。
這是它在做什麼:
這是有問題的Excel文件(不知道這個鏈接將工作):
https://drive.google.com/file/d/0B7-iwpcLS0GoaVpHYkxPTWdIYUE/view?usp=sharing
直接下載鏈接,如果說谷歌電子表格失敗:
http://www.filedropper.com/123456_1
這是基本的代碼,我使用的是剝去了我的申請:
Dim xlAppIn As New Excel.Application
Dim xlWorkbookIn As Excel.Workbook = xlAppIn.Workbooks.Open(sFilename)
xlAppIn.Visible = False
Dim oleDbConnStr As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & sFilename & ";Extended Properties='Excel 12.0; HDR=No; IMEX=1'"
Dim oleDbConn As OleDbConnection = New OleDbConnection(oleDbConnStr)
oleDbConn.Open()
Dim sSheetName As String = xlWorkbookIn.Sheets(1).Name.ToString()
txtStatus.Text = sSheetName
'Dim oleDbCmd As New OleDbCommand("SELECT * FROM [" & sSheetName & "$B5:AI46]", oleDbConn)
Dim oleDbCmd As New OleDbCommand("SELECT * FROM [" & sSheetName & "$]", oleDbConn)
Dim oleDbDa As New OleDbDataAdapter(oleDbCmd)
Dim dt As New DataTable
oleDbDa.Fill(dt)
dgvRaw.DataSource = dt
我在做什麼錯在這裏?
我猜,也許這是我的連接字符串?或者,也許文件類型太舊?這可能是一箇舊的excel文件,由誰知道什麼版本等,我很茫然。 – Keith 2015-02-06 16:50:35
它看起來對我很正確。注意:原始的Excel工作表具有零高度的第26行......但它在那裏。 – 2015-02-06 16:57:17
我已經添加了一個下載鏈接:http://www.filedropper.com/123456_1以防萬一它是一種奇怪的excel版本問題,你們也可以加載它,看看它是否適合你。 – Keith 2015-02-06 17:00:59