我有一个DataGridView
,我从多个excel文件导入数据。但每次导入数据时都会覆盖以前的数据。如何在数据网格视图中将下一个excel文件添加到上一个文件的末尾?
If DataGridView1.RowCount > 0 Then
MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\Work\4pc_test1.xlsx;Extended Properties=Excel 12.0;")
'MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & fd.FileName & "';Extended Properties=Excel 8.0;")
MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection)
MyCommand.TableMappings.Add("Table", "Net-informations.com")
DtSet = New System.Data.DataSet
MyCommand.Fill(DtSet)
'DataGridView1.DataSource = DtSet.Tables(0)
Dim tab As DataTable = DtSet.Tables(0)
DataGridView1.DataSource = tab
MyConnection.Close()
Else
'The below connection allows for the opening of .xls files and .xlsx. The one reamed out below doesnt open up .xls files.
MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\Work\4pc_test1.xlsx;Extended Properties=Excel 12.0;")
'MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & fd.FileName & "';Extended Properties=Excel 8.0;")
MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection)
MyCommand.TableMappings.Add("Table", "Net-informations.com")
DtSet = New System.Data.DataSet
MyCommand.Fill(DtSet)
DataGridView1.DataSource = DtSet.Tables(0)
MyConnection.Close()
End If
答案 0 :(得分:2)
您可以简单地多次填充一个DataTable
,并以这种方式将行添加到DataTable
。例如:
Try
Dim table = New DataTable()
Dim connection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=D:\excel1.xlsx;" & _
"Extended Properties=Excel 12.0;"
Using adapter As New OleDbDataAdapter("select * from [Sheet1$]", connection)
adapter.Fill(table)
End Using
connection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=D:\excel2.xlsx;" & _
"Extended Properties=Excel 12.0;"
Using adapter As New OleDbDataAdapter("select * from [Sheet1$]", connection)
adapter.Fill(table)
End Using
Me.DataGridView1.DataSource = table
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
不同excel文件中的列数可能不同,但如果列中的列名相同,则这些列的数据应该是相同的类型。