VB.Net使用和操作Excel电子表格

时间:2017-08-17 14:13:53

标签: excel vb.net

我想在我的数据集中迭代一行。如果行的第一个单元格是模式1234-Name,那么我想从中删除数字(1234)并将其保存为变量。基本上,第一个单元格是员工及其编号,如1234-Bob McDonald。如果它不是那种形式,那么我想忽略它并移动到下一行。

然后我想在同一行中逐个单元格,以及单元格中的任何内容,将其保存到另一个变量(第2列是位置,第3列是工作小时数等)

这是我到目前为止的代码:

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 16.0;")
    MyAdapter = New System.Data.OleDb.OleDbDataAdapter("Select * from [Sheet1$]", MyConnection)
    Ds = New System.Data.DataSet
    MyAdapter.Fill(Ds)
    Return Ds
End Function

1 个答案:

答案 0 :(得分:0)

这个怎么样?


WITH pivot_cte 
     ( 
          id, 
          query_a, 
          query_b 
     ) 
     AS 
     -- Define the CTE query. 
     ( 
            SELECT * 
            FROM   ( 
                          SELECT Id, a query_a, 
                                 b query_b 
                          FROM   table3 ) table3 PIVOT ( Max(response) FOR query IN ([a], 
                                                                                     [b]) ) piv;)
     SELECT * 
     FROM   pivot_cte 
     JOIN   table1 
     ON     table1.id=pivot_cte.id 
     JOIN   table2 
     ON     table2.id=pivot_cte.id