VB.NET如何通过浏览计算机把有表头的EXCEL数据全部导入DATAGIRDVIEW中
时间: 2023-12-14 15:38:46 浏览: 45
您可以使用以下代码来实现此功能:
```vbnet
Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click
'创建 OpenFileDialog 对象
Dim openFileDialog As New OpenFileDialog()
'设置文件类型过滤器
openFileDialog.Filter = "Excel文件 (*.xls;*.xlsx)|*.xls;*.xlsx"
'显示打开文件对话框
If openFileDialog.ShowDialog() = DialogResult.OK Then
'获取文件名
Dim fileName As String = openFileDialog.FileName
'创建 Excel 应用程序对象
Dim excelApp As New Microsoft.Office.Interop.Excel.Application()
'打开 Excel 文件
Dim workbook As Microsoft.Office.Interop.Excel.Workbook = excelApp.Workbooks.Open(fileName)
'获取第一个工作表
Dim worksheet As Microsoft.Office.Interop.Excel.Worksheet = workbook.Sheets(1)
'获取工作表中的数据范围
Dim range As Microsoft.Office.Interop.Excel.Range = worksheet.UsedRange
'获取数据范围中的行数和列数
Dim rows As Integer = range.Rows.Count
Dim columns As Integer = range.Columns.Count
'创建一个 DataTable 对象
Dim dataTable As New DataTable()
'添加表头列
For i As Integer = 1 To columns
dataTable.Columns.Add(range.Cells(1, i).Value().ToString())
Next
'将数据范围中的数据导入 DataTable 对象
For i As Integer = 2 To rows
Dim row As DataRow = dataTable.NewRow()
For j As Integer = 1 To columns
row(j - 1) = range.Cells(i, j).Value()
Next
dataTable.Rows.Add(row)
Next
'将 DataTable 对象绑定到 DataGridView 控件
DataGridView1.DataSource = dataTable
'关闭 Excel 文件
workbook.Close()
'释放 Excel 应用程序对象
excelApp.Quit()
Marshal.ReleaseComObject(excelApp)
End If
End Sub
```
这段代码首先创建了一个 OpenFileDialog 对象,并设置了文件类型过滤器,然后显示打开文件对话框,让用户选择要导入的 Excel 文件。接下来,创建 Excel 应用程序对象,打开 Excel 文件,并获取第一个工作表和数据范围。然后,创建一个 DataTable 对象,并添加表头列。接着,将数据范围中的数据导入 DataTable 对象,并将 DataTable 对象绑定到 DataGridView 控件。最后,关闭 Excel 文件并释放 Excel 应用程序对象。