使用VB.NET将数据从Excel Sheet传递到DataGridView

时间:2017-07-14 11:02:19

标签: excel vb.net datagridview import

我正在开发一个项目,旨在将数据从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

但我一直遇到异常:(我尝试将我的项目目标从任何CPU更改为x64 ......)

  

System.Data.dll中发生了未处理的“System.InvalidOperationException”类型异常   附加信息:“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。

那么:有没有什么方法可以在不使用OLEDB的情况下将数据从excel发送到datagrid?如果是这样的话,我会非常感谢能够让我摆脱困境的解决方案,已经为此工作了3天......

美好的一天! (:

1 个答案:

答案 0 :(得分:0)

实际上这更好:

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

在那里查看所选答案。请务必阅读下面的评论。