2017-07-14 92 views
0

我正在致力于一个项目,旨在导入和导出数据从datagridview到excel表和viceversa。到目前为止,我设法从我的datagridview发送数据到Excel,但我不能从Excel做它的DataGrid ...我尝试下面的代码:从Excel工作表传递数据到DataGridView使用VB.NET

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.InvalidOperationException”出现在system.data.dll 其他信息:“Microsoft.ACE .OLEDB.12.0“提供程序未在本地计算机上注册。

因此:有没有什么办法可以将数据从excel发送到datagrid而无需使用OLEDB?如果是这样,我将非常感激解决方案,可以让我摆脱这一点,已经在这工作了3天...

祝你有美好的一天! (:

+0

你可以看一下连接字符串这里寻求帮助。: https://www.connectionstrings.com/excel-2007/ – Derek

+0

谢谢,Derek!我认为这些字符串将会非常有用,现在我只需要弄清楚如何根据新的连接字符串结构更改我的代码;) –

回答