使用oledb连接检索每个单元格的excel数据

我有一个代码从Excel中检索每个数据来更新dbf文件。 我使用Microsoft.Office.Interop.Excel来读取列的每个范围的数据。 现在我想改变使用oledb连接excel ..我如何检索每列的数据,并将其设置为一个variables? 这里是我的代码为Microsoft.Office.Interop.Excel。

xlApp = New Excel.Application xlWorkBook = xlApp.Workbooks.Open(xlsName) xlWorkSheet = xlWorkBook.Worksheets("sheet1") xlRange = xlWorkSheet.UsedRange endrow = xlRange.Rows.Count For rCnt = 3 To endrow Empno = xlRange.Cells(rCnt, 1).Value totalhrs = xlRange.Cells(rCnt, 3).Value latehr = xlRange.Cells(rCnt, 4).Value Next xlWorkBook.Close() xlApp.Quit() 

这是我的oledb连接。 连接后,我真的不知道我应该怎么做才能得到的数据。 请帮助我…我希望有人在stackoverflow可以帮助我。

  Dim xlsConnect As System.Data.OleDb.OleDbConnection Dim DtSet As System.Data.DataSet Dim MyCommand As System.Data.OleDb.OleDbDataAdapter Try If (Path.GetExtension(xlsName) = ".xls") Then xlsConnect = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & xlsName & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=2""") ElseIf (Path.GetExtension(xlsName) = ".xlsx") Then xlsConnect = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & xlsName & ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1;';") End If MyCommand = New System.Data.OleDb.OleDbDataAdapter("Select * from [Sheet1$]", xlsConnect) 'looping data should be here xlsConnect.Close() Catch ex As Exception MsgBox(ex.ToString) End Try 

假设你将在datagridview中显示你的细节。你可以试试这段代码:

  MyCommand.TableMappings.Add("Table", "TestTable") DtSet = New System.Data.DataSet MyCommand.Fill(DtSet) DataGridView1.DataSource = DtSet.Tables(0) MyConnection.Close() 

如果你想使用variables你必须遍历你的数据集:

 dim i as integer = 0 for i = 0 to dtset.tables(0).rows.count-1 'Add values to your variable next