none
importar planilha excel 2010 e 2003 em DataGrid RRS feed

  • 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
    sábado, 4 de janeiro de 2014 16:55

Todas as Respostas

  • Também gostaria de saber,

    No meu caso eu coloquei 2 radiobutton , um para 97 e outro para 2007

    sábado, 4 de janeiro de 2014 22:58
  • 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

    terça-feira, 25 de março de 2014 19:01
  • Olá,

    Veja se este link te ajuda.

    Macoratti.NET - Excel e VB - Importando e Exportando Dados

    Abraço!


    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.

    terça-feira, 6 de maio de 2014 12:50