2013-08-02 2 views
1

У меня есть код для извлечения данных из excel для обновления файла dbf. Я использую Microsoft.Office.Interop.Excel для чтения данных в каждом диапазоне столбцов. теперь я хочу изменить соединение excel с помощью oledb .. Как я могу получить данные каждого столбца и установить его в переменную? вот мой код для Microsoft.Office.Interop.Excel.извлекать данные excel по каждой ячейке с использованием oledb-соединения

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() 

это мое соединение олед. после подключения у меня действительно нет идеи, что я должен сделать, чтобы получить данные. пожалуйста, помогите мне ... я надеюсь, что кто-то из 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 
Смежные вопросы