2009-02-11 110 views
1

我有多个excel文件,我将其作为数据表打开 我想在.net中合并所有这些数据表单的DataTable。如何将多个数据表合并为一个?

例如, Apr09.xls,May09.xls,Jun09.xls

所有有dataas如下

Apr09.xls

EMPCODE,PresentDays 
0001 ,30 
0002 ,21 

May09.xls

EMPCODE,PresentDays 
0001 ,25 
0002 ,30 

新的数据表如下

EMPCODE,PresentDays 
0001 ,30 
0002 ,21 
0001 ,25 
0002 ,30 

如何创建这个。

回答

1

Datatable.Merge可以使用如下

For Each fileName As String In Directory.GetFiles("C:\\TEMP\\", "*.xls") 
    Dim connectionString As String = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=""Excel 8.0;HDR=NO;IMEX=1;""", fileName) 
    Dim adapter As New OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString) 
    Dim ds As New DataSet 
    adapter.Fill(ds, "anyNameHere") 
    Dim TempTable As DataTable 
    TempTable = ds.Tables.Item("anyNameHere") 
    table1.Merge(TempTable) 
    MsgBox(fileName) 
Next 
DataGridView1.DataSource = table1 
MsgBox(table1.Rows.Count)