VB .NET -  Carregando informações de  uma coluna de uma planilha Excel em um ListBox


Neste artigo vou mostrar como podemos carregar as informações de uma coluna específica de uma planilha Excel em um controle ListBox usando a linguagem VB .NET.

Neste artigo vou usar a função CreateObject para criar uma instância de um objeto de automação OLE (ActiveX) para o Excel :  Dim oExcel As Object = CreateObject("Excel.Application")

Antes de chamar os métodos, funções ou propriedades de um objeto COM ou ActiveX, é preciso criar uma instância desse objeto.

Após criar a instância basta referenciar no código usando a variável objeto definida:

Lembrando que CreateObject só pode ser usado para criar objetos de instâncias de COM (ou ActiveX); Não pode ser usado para instanciar os componentes .NET.

Como exemplo após criar a instância COM para o Excel vamos acessar as informações de uma coluna importando-as para um controle ListBox.

Recursos usados:

Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.

Criando a solução no VS Community

Abra o VS Community 2015 e clique em New Project;

Selecione a linguagem Visual Basic e o template Windows Forms Application;

Informe o nome VBNET_Excel_ListBox e clique no botão OK;

No formulário padrão form1.vb inclua os seguintes controles a partir da ToolBox:

Disponha os controle conforme o leiaute da figura abaixo:

No início do formulário declare as variáveis objeto que iremos usar no projeto:

Dim oExcel As Object
Dim
oBook As Object
Dim
oSheet As Object

No evento Click do botão btnLocalizar vamos incluir o código abaixo:

 Private Sub btnLocalizar_Click(sender As Object, e As EventArgs) Handles btnLocalizar.Click
        Dim AbrirComo As OpenFileDialog = New OpenFileDialog()
        Dim caminho As DialogResult
        Dim Arquivo As String
        AbrirComo.Title = "Abrir como"
        AbrirComo.FileName = "Nome Arquivo"
        AbrirComo.Filter = "Arquivos Excel (*.xlsx)|*.xlsx"
        AbrirComo.InitialDirectory = "C:\Dados\Excel\"
        caminho = AbrirComo.ShowDialog
        Arquivo = AbrirComo.FileName
        If Arquivo = Nothing Then
            MessageBox.Show("Arquivo Invalido", "", MessageBoxButtons.OK)
        Else
            txtPlanilhaExcel.Text = AbrirComo.FileName
        End If
  End Sub

No evento Click do botão de comando btnImportar inclua o código abaixo:

 Private Sub btnImportar_Click(sender As Object, e As EventArgs) Handles btnImportar.Click
        If IO.File.Exists(txtPlanilhaExcel.Text) Then
            Try
                oExcel = CreateObject("Excel.Application")
                oBook = oExcel.Workbooks.Open(txtPlanilhaExcel.Text)
                oSheet = oBook.Worksheets(txtNomePlanilha.Text)
                Dim i As Integer
                Dim cell As String
                For i = 0 To AscW(lbDados.Items.Count.ToString()(i = i + 1)) - 1
                    'define o nome da celula a acessar ex: A1, A2, etc
                    cell = txtNomeColuna.Text & Convert.ToString(i + 1)
                    ' pega os dados da celula do Excel
                    cell = oSheet.Range(cell).Value
                    If cell = "" Then
                        Exit For
                    Else
                        lbDados.Items.Add(cell)
                    End If
                Next
            Catch ex As Exception
                MessageBox.Show("Erro : " & ex.Message)
            Finally
                oExcel.Quit()
            End Try
        Else
            MessageBox.Show("Arquivo não existe")
        End If
    End Sub

Agora execute o projeto, selecione uma planilha Excel , defina a planilha e o nome da coluna para importar seus dados:



Pegue o projeto completo aqui : VBNET_Excel_ListBox.zip

Porque toda a carne é como a erva, e toda a glória do homem como a flor da erva. Secou-se a erva, e caiu a sua flor;
Mas a palavra do Senhor permanece para sempre.E esta é a palavra que entre vós foi evangelizada.

1 Pedro 1:24-25

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?

 

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

 

Referências:


José Carlos Macoratti