Загрузите данные из excel в datagridview in VB.NET
Еще неделю назад все работало, а теперь ничего не работает, что наводит меня на подозрение, что Microsoft что-то изменила в Net Framework, Windows 10 Anniversary Update или в PIA. В прошлом я просто использовал мастер для привязки моих данных в электронной таблице Excel к элементу управления DataGridView, и он просто работал. Но примерно неделю назад моя программа вдруг перестала загружать COM-библиотеку с ранним связыванием, но я смог заставить ее работать с поздним связыванием. Но он забил мой дисплей DataGridView (dgv), и я не смог его вернуть.
Что я уже пробовал:
Теперь, если я использую мастер, я просто получаю пустой dgv без каких-либо данных. Если я попытаюсь сделать это в коде, то команда OleDbAdapter.Fill (dataset) больше не работает, и он выдает исключение. Вот код, который я использую....
Imports System.Data.OleDb Public Class Form1 Dim con As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Dave\Documents\clients.xls" Dim Myconn As OleDbConnection Dim da As OleDbDataAdapter Dim ds As DataSet Dim tables As DataTableCollection Dim src As New BindingSource Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Myconn = New OleDbConnection Myconn.ConnectionString = con ds = New DataSet tables = ds.Tables da = New OleDbDataAdapter("Select * from [clients]", Myconn) da.Fill(ds, "clients") 'this step fails and throws the exception Dim view As New DataView(tables(0)) src.DataSource = view dgv.DataSource = view End Sub End Class
Richard MacCutchan
Интересно, какое может быть исключение?
Member 12877669
Забавная штука! Я удалил office365 и вернулся в Office 2013, и теперь вдруг все мои программы снова работают. Таким образом, похоже, что MS "улучшает" вещи, вроде того, что они сделали с VB6.
Mehdi Gholam
Попробуйте еще раз переустановить oledb-провайдер.
Member 12877669
Забавная штука! Я удалил office365 и вернулся в Office 2013, и теперь вдруг все мои программы снова работают. Таким образом, похоже, что MS "улучшает" вещи, вроде того, что они сделали с VB6. Я попытался переустановить OLEDB, но безуспешно. Я не знаю, почему Office 2013 так отличается от Office 2016, но это так.
Member 12877669
Забавная штука! Я удалил office365 и вернулся в Office 2013, и теперь вдруг все мои программы снова работают. Таким образом, похоже, что MS "улучшает" вещи, вроде того, что они сделали с VB6.
Majesss
Я предполагаю, что у вас была проблема с более старой ссылкой, используемой при работе с Microsoft Excel Interop в C# или VB.NET вам необходимо обновить свои ссылки при обновлении версии Microsoft Office.
Однако вы можете избежать этого, если измените свой подход, например, используя следующее C# и VB.NET библиотека Excel вы можете прямо экспортируйте данные Excel в элемент управления DataGridView.