【发布时间】:2023-03-21 14:30:01
【问题描述】:
我正在从事一个项目,旨在将数据从 datagridview 导入和导出到 excel 表,反之亦然。到目前为止,我设法将数据从我的 datagridview 发送到 excel,但我无法从 excel 到 datagrid 发送数据......我尝试了以下代码:
Dim dtSheet1 As New DataTable
Using cn As New System.Data.OleDb.OleDbConnection
Dim Builder As New OleDbConnectionStringBuilder With
{
.DataSource = filename,
.Provider = "Microsoft.ACE.OLEDB.12.0"
}
Builder.Add("Extended Properties", "Excel 16.0; IMEX=1;HDR=Yes;")
cn.ConnectionString = Builder.ConnectionString
cn.Open()
Using cmd As OleDbCommand = New OleDbCommand With {.Connection = cn}
cmd.CommandText = "SELECT * FROM [Sheet1$]"
Dim dr As System.Data.IDataReader = cmd.ExecuteReader
dtSheet1.Load(dr)
datagridview1.DataSource = dtSheet1
End Using
End Using
但我一直遇到异常:(我尝试将项目的目标从 Any CPU 更改为 x64...)
System.Data.dll 中出现“System.InvalidOperationException”类型的未处理异常 附加信息:“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。
那么:有什么方法可以在不使用 OLEDB 的情况下将数据从 excel 发送到数据网格?如果是这样,我将非常感谢一个可以让我摆脱困境的解决方案,已经为此工作了 3 天......
祝你有美好的一天! (:
【问题讨论】:
-
您可以在此处查看连接字符串以获取帮助:connectionstrings.com/excel-2007
-
谢谢,德里克!我认为这些字符串会很有帮助,现在我只需要弄清楚如何根据新的连接字符串结构更改我的代码;)
标签: excel vb.net datagridview import