Inquiridor
importar planilha excel 2010 e 2003 em DataGrid

Pergunta
-
Estou tendo problemas em importar dados das versões do excel 2007 e 2010 (.xlsx).
meu código
Private Sub btnImportar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImportar.Click Dim OpenFileDialog1 As New OpenFileDialog Dim nomePlanilha As String = txtNomePlanilha.Text Dim FileName As String = "" Try Dim arquivo As New OpenFileDialog 'Abrimos a seleção do arquivo excel If arquivo.ShowDialog = Windows.Forms.DialogResult.OK Then Me.DataGridView1.DataSource = "" Dim da As OleDbDataAdapter Dim dt As DataTable Dim conexao_Excel As String = "" If IO.Path.GetExtension(FileName.ToUpper) = ".XLSX" Then conexao_Excel = "Provider=Microsoft.ACE.OLEDB.12.0;" & "data source=" & arquivo.FileName & "; " & "Extended Properties=Excel 12.0;" Else conexao_Excel = "Provider=Microsoft.Jet.OleDb.4.0;data source=" & arquivo.FileName & ";Extended Properties=Excel 8.0;" End If If txtNomePlanilha.Text = String.Empty Then MsgBox("Por favor preencher o nome da planilha", MsgBoxStyle.Critical, "Dmep exporta") Else ' cria um novo dataadapter da = New OleDbDataAdapter("SELECT [Nº NFS-e],[Data Hora NFE],[CPF/CNPJ do Tomador],[Razão Social do Tomador]," & _ "[Discriminação dos Serviços],[Discriminação dos Serviços] FROM [" & nomePlanilha & "$]", conexao_Excel) End If ' preenche a tabela com dados da planilha Excel dt = New DataTable da.Fill(dt) ' vincula o modo de visao padrão da tabela ao datagrid DataGridView1.DataSource = dt Me.DataGridView1.AllowUserToAddRows = False End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
não consigo importar dados do excel 2007 e 2010 somente do excel 2003, mas quando tiro o if e coloco somente o código
conexao_Excel = "Provider=Microsoft.ACE.OLEDB.12.0;" & "data source=" & arquivo.FileName & "; " & "Extended Properties=Excel 12.0;"
consigo importar normalmente a versão 2007 e 2010, mas obviamente a versão 2003 não.
O erro que da
- Editado FaMigos sábado, 4 de janeiro de 2014 16:58
Todas as Respostas
-
-
Espero que este código ajude.
Imports System.Data.OleDb Public Class Form1 Dim nomePlanilha As String Private Sub ImportarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ImportarToolStripMenuItem.Click Dim con As OleDbConnection Dim ds As OleDbDataAdapter Dim dt As New DataTable OpenFileDialog1.InitialDirectory = "C:\" OpenFileDialog1.Filter = "xlsx files (*.xlsx)|*.xlsx|xls files (*.xls)|*.xls|csv files (*.csv)|*.csv|All files (*.*)|*.*" If OpenFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then nomePlanilha = OpenFileDialog1.FileName Else 'End Sub MessageBox.Show("Arquivo não encontrado") End If con = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & nomePlanilha & ";Extended Properties=Excel 12.0;") con.Open() ds = New OleDbDataAdapter("SELECT * FROM [Entrada de dados$]", con) ds.Fill(dt) DataGridView1.DataSource = dt con.Close() End Sub End Class
-
Olá,
Veja se este link te ajuda.
Macoratti.NET - Excel e VB - Importando e Exportando Dados
Paulo Lucio Cardozo Neto
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.