none
Importar xls para DataGridView em VB RRS feed

  • Pergunta

  • Pessoal, alguém tem uma dica de como fazer para importa um *.xls para dentro de um datagridview em Vb 2012.

    Quero também usar OpenFileDialog para selecionar o arquivo e importar para dentro do DataGridView.

    segunda-feira, 2 de março de 2015 13:08

Respostas

  • Esse é um erro comum, você esta executando sua aplicação ou como x64 ou no modo Any, o driver OleDB só funciona em X86, vá na configuração do projeto e em Build mude de ANY para X86, veja na imagem abaixo:

    Plataform target

    A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quinta-feira, 5 de março de 2015 11:44
  • Nesse artigo do Macoratti ensina a fazer a importação e exibir em uma DataGridView, e você pode baixar o código fonte para estudar.

    VB.NET - Importando dados de uma planilha Excel

    A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    Nesse link que informei tem tudo o que precisa você chegou a testar?
    o link utiliza o mesmo metodo, agora se não testar realmente não vera o funcionamento

    A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossível


    • Editado Mr. GMSOFT quarta-feira, 4 de março de 2015 21:10
    • Sugerido como Resposta Mr. GMSOFT quarta-feira, 4 de março de 2015 21:10
    • Marcado como Resposta Ricardo Barbosa Cortes quinta-feira, 5 de março de 2015 14:19
    quarta-feira, 4 de março de 2015 21:09

Todas as Respostas

  • Sugiro vc utilizar alguma biblioteca para leitura do XLS, como o NPOI:

    https://github.com/tonyqus/npoi

    Entendo ser esse o caminho mais fácil, já que as outras opções irão obrigar que vc tenha o Excel instalado na máquina (o que poderia ser desperdício em termos de licença, se considerar o uso do aplicativo em um servidor).

    segunda-feira, 2 de março de 2015 13:33
  • Nesse artigo do Macoratti ensina a fazer a importação e exibir em uma DataGridView, e você pode baixar o código fonte para estudar.

    VB.NET - Importando dados de uma planilha Excel

    A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    • Sugerido como Resposta Mr. GMSOFT segunda-feira, 2 de março de 2015 13:34
    • Marcado como Resposta Ricardo Barbosa Cortes quarta-feira, 4 de março de 2015 19:19
    • Não Marcado como Resposta vaggnersf quarta-feira, 4 de março de 2015 19:26
    segunda-feira, 2 de março de 2015 13:34
  • Sugiro vc utilizar alguma biblioteca para leitura do XLS, como o NPOI:

    https://github.com/tonyqus/npoi

    Entendo ser esse o caminho mais fácil, já que as outras opções irão obrigar que vc tenha o Excel instalado na máquina (o que poderia ser desperdício em termos de licença, se considerar o uso do aplicativo em um servidor).

    Renato Groffe, sabe onde posso encontrar material para estudo a respeito dessa biblioteca NPOI?
    segunda-feira, 2 de março de 2015 17:16
  • Eu escrevi tempos atrás um post sobre como gravar planilhas com essa biblioteca:

    http://www.devmedia.com.br/excel-x-net-framework-gerando-planilhas-xls-sem-o-uso-de-interop-com/27784

    Nos links abaixo vc pode encontrar alguns exemplos envolvendo a leitura de planilhas:

    http://stackoverflow.com/questions/5855813/npoi-how-to-read-file-using-npoi

    http://www.codeproject.com/Tips/813187/Csharp-Read-and-Write-Excel-xls-and-xlsx-Files-Con

    Espero ter ajudado.

    Abs

    segunda-feira, 2 de março de 2015 17:35
  • Pessoal achei esse código e estou tentando modificar mais não consigo chegar onde quero. Como esse código leva direto de um botão para o DataGridView as informações do xls acaba bagunçando tudo sem nenhum parâmetro

    A verdade gostaria que ele levasse a partir de uma OpenFileDialog, onde posso selecionar o arquivo e depois clicar no botão importar xls.

    Outro detalhe que já tenho o meu DataGridView com os nomes nas colunas (cabeçalho). Queria que no arquivo xls (coluna 1) ele levasse no meu DataGridView para o coluna (Lançamento), a (coluna 2) do xls levasse para meu DataGridView para a coluna (Dados)

    Seria possível esse comando? 

        Private Sub btnimportar_Click(sender As Object, e As EventArgs) Handles btnimportar.Click
    
            Dim MyConnection As System.Data.OleDb.OleDbConnection
            Dim DtSet As System.Data.DataSet
            Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
    
            MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\TEMP\RZJanDez.XLS';Extended Properties=Excel 8.0;")
            MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Plan1$]", MyConnection)
            MyCommand.TableMappings.Add("Table", "Net-informations.com")
            DtSet = New System.Data.DataSet
            MyCommand.Fill(DtSet)
            dgv1.DataSource = DtSet.Tables(0)
            MyConnection.Close()
    
        End Sub
    
    
        Private Sub btnSelecionar_Click(sender As Object, e As EventArgs) Handles btnSelecionar.Click
            Dim Arquivoexcel As New OpenFileDialog
    
            Arquivoexcel.Filter = "All Files (*.*)|*.*|Excel files (*.xlsx)|*.xlsx|CSV Files (*.csv)|*.csv|XLS Files (*.xls)|*xls"
            Arquivoexcel.ShowDialog()
    
            txtArquivo.Text = Arquivoexcel.FileName 'Atribuimos o Caminho do Arquivo ao Textbox
    
        End Sub

    quarta-feira, 4 de março de 2015 19:28
  • Nesse artigo do Macoratti ensina a fazer a importação e exibir em uma DataGridView, e você pode baixar o código fonte para estudar.

    VB.NET - Importando dados de uma planilha Excel

    A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    Nesse link que informei tem tudo o que precisa você chegou a testar?
    o link utiliza o mesmo metodo, agora se não testar realmente não vera o funcionamento

    A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossível


    • Editado Mr. GMSOFT quarta-feira, 4 de março de 2015 21:10
    • Sugerido como Resposta Mr. GMSOFT quarta-feira, 4 de março de 2015 21:10
    • Marcado como Resposta Ricardo Barbosa Cortes quinta-feira, 5 de março de 2015 14:19
    quarta-feira, 4 de março de 2015 21:09
  • Testei esse codigo (VB.NET - Importando dados de uma planilha Excel)e  nao consegui arrumar esse erro..


    • Editado vaggnersf quinta-feira, 5 de março de 2015 11:30
    quinta-feira, 5 de março de 2015 11:29
  • Esse é um erro comum, você esta executando sua aplicação ou como x64 ou no modo Any, o driver OleDB só funciona em X86, vá na configuração do projeto e em Build mude de ANY para X86, veja na imagem abaixo:

    Plataform target

    A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quinta-feira, 5 de março de 2015 11:44