2013-08-02 26 views
1

我有一個代碼用於從excel中檢索每個數據以更新dbf文件。我使用Microsoft.Office.Interop.Excel來讀取列的每個範圍的數據。 現在我想改變使用oledb連接excel .. 如何檢索每列的數據並將其設置爲變量? 這裏是我的代碼爲Microsoft.Office.Interop.Excel。使用oledb連接檢索每個單元的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 

回答

1

假設你會顯示在datagridview.You您的詳細信息可以試試這片編碼:

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

如果你想通過你的數據集使用,你必須循環變量:

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