vb.net 使用oledb将dataTable中的数据保存到excel
时间: 2024-04-07 17:33:15 浏览: 238
您可以使用以下代码将 DataTable 中的数据保存到 Excel 文件中:
```vb
Imports System.Data.OleDb
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
SaveDataTableToExcel()
End Sub
Private Sub SaveDataTableToExcel()
' 创建 DataTable 并填充数据
Dim dataTable As New DataTable()
dataTable.Columns.Add("ColumnA")
dataTable.Columns.Add("ColumnB")
dataTable.Rows.Add("ValueA1", "ValueB1")
dataTable.Rows.Add("ValueA2", "ValueB2")
dataTable.Rows.Add("ValueA3", "ValueB3")
' 设置连接字符串
Dim connString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\your_excel_file.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES;'"
' 创建连接对象
Using conn As New OleDbConnection(connString)
conn.Open()
' 创建插入数据的 SQL 命令
Dim insertSQL As String = "INSERT INTO [Sheet1$] (ColumnA, ColumnB) VALUES (?, ?)"
' 创建插入数据的命令对象
Using insertCmd As New OleDbCommand(insertSQL, conn)
insertCmd.Parameters.Add("@ColumnA", OleDbType.VarChar)
insertCmd.Parameters.Add("@ColumnB", OleDbType.VarChar)
' 遍历 DataTable 中的行并插入到 Excel 中
For Each row As DataRow In dataTable.Rows
insertCmd.Parameters("@ColumnA").Value = row("ColumnA").ToString()
insertCmd.Parameters("@ColumnB").Value = row("ColumnB").ToString()
insertCmd.ExecuteNonQuery()
Next
End Using
End Using
End Sub
End Class
```
请确保将 `your_excel_file.xlsx` 替换为您要保存的实际 Excel 文件的路径。此示例假设您正在使用 Excel 2007 或更高版本。
这段代码在 `Form1_Load` 事件中调用 `SaveDataTableToExcel` 方法,该方法创建一个 DataTable 并填充一些示例数据。然后,它使用 OleDb 连接到指定的 Excel 文件,并将 DataTable 中的数据插入到名为 "Sheet1" 的工作表中的相应列中。
希望对您有所帮助!如有更多问题,请随时提问。
阅读全文