【问题标题】:Passing data from Excel Sheet to DataGridView using VB.NET使用 VB.NET 将数据从 Excel 表传递到 DataGridView
【发布时间】: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


【解决方案1】:

其实这样更好:

'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine

在此处查看所选答案。请务必阅读其下方的 cmets。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    相关资源
    最近更新 更多