C#  -  ListView - Preenchendo com dados e Exportando para Texto e Excel - IV


 Neste artigo vou mostrar como preencher um controle ListView com dados usando o Entity Framework, como exibir os dados selecionados em um linha do ListView e como exportar os dados para o formato texto e Excel.

Continuando a terceira parte do artigo agora vou mostrar como exportar o conteúdo do ListView para o Excel.

Vamos lá...

Recursos Usados

Exportando o conteúdo do ListView para o Excel

Abra o projeto C_ListView1 criado no artigo anterior no VS 2015 Community;

Vamos incluir uma referência ao namespace using Microsoft.Office.Interop.Excel no projeto.

Clique com o botão direito sobre o projeto e a seguir em Add Reference;

A seguir clique no botão Browse e localize e selecione o arquivo Microsoft.Office.Interfop.Excel.dll (a localização varia mas em geral esta na pasta Program Files(x86)\Microsoft Office\...);

Agora no evento Click do botão de comando Exportar Excel do formulário Form1.cs  inclua o código abaixo:

       private void btnExportaExcel_Click(object sender, EventArgs e)
        {
            using (SaveFileDialog sfd = new SaveFileDialog()
            {
                Filter = "Excel |* .xls",
                InitialDirectory = @"c:\dados\xls",
                FileName = "DadosListView_Excel_" + DateTime.Now.Millisecond.ToString() + ".xls",
                ValidateNames = true
            })
            {
                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
                    Workbook wb = app.Workbooks.Add(XlSheetType.xlWorksheet);
                    Worksheet ws = (Worksheet)app.ActiveSheet;
                    app.Visible = false;
                    ws.Cells[1, 1] = "Produto ID";
                    ws.Cells[1, 3] = "Nome do Produto";
                    ws.Cells[1, 3] = "Preço";
                    ws.Cells[1, 4] = "Estoque";
                    int i = 2;
                    foreach (ListViewItem item in lvwDados.Items)
                    {
                        ws.Cells[i, 1] = item.SubItems[0].Text;
                        ws.Cells[i, 2] = item.SubItems[1].Text;
                        ws.Cells[i, 3] = item.SubItems[2].Text;
                        ws.Cells[i, 4] = item.SubItems[3].Text;
                        i++;
                    }
                    wb.SaveAs(sfd.FileName, XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, true, false, XlSaveAsAccessMode.xlNoChange,
 XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing);
                    app.Quit();
                }
                MessageBox.Show("Seus dados foram exportados para o Excel com sucesso");
              }
            }
    }

Vamos entender o código:

1- Usamos o controle SaveFileDialog para abrir uma janela de diálogo Salvar Arquivos e definimos as seguintes propriedades:

2 - Se o usuário não cancelar a janela de diálogo SaveDialog - if(sfd.ShowDialog() == DialogResult.OK)

3 - Criamos uma instância de Application e definimos o WorkBook(pasta de trabalho) e o WorkSheet(planilha)

                   Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
                    Workbook wb = app.Workbooks.Add(XlSheetType.xlWorksheet);
                    Worksheet ws = (Worksheet)app.ActiveSheet;

4 - Tornamos a aplicação invisível e definimos o cabeçalho da planlha;

                    app.Visible = false;
                    ws.Cells[1, 1] = "Produto ID";
                    ws.Cells[1, 3] = "Nome do Produto";
                    ws.Cells[1, 3] = "Preço";
                    ws.Cells[1, 4] = "Estoque";

5- Percorremos o ListView e escrevemos os itens na planilha:

                    foreach (ListViewItem item in lvwDados.Items)
                    {
                        ws.Cells[i, 1] = item.SubItems[0].Text;
                        ws.Cells[i, 2] = item.SubItems[1].Text;
                        ws.Cells[i, 3] = item.SubItems[2].Text;
                        ws.Cells[i, 4] = item.SubItems[3].Text;
                        i++;
                    }

6- Salvamos o arquivo Excel:

   wb.SaveAs(sfd.FileName, XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, true, false, XlSaveAsAccessMode.xlNoChange, XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing);
   app.Quit();

Executando o projeto e clicando no botão Exporta Excel iremos obter:

Pegue o projeto aqui: C_ListView1.zip (sem as referências)

(Disse Jesus) Na verdade, na verdade vos digo que quem ouve a minha palavra, e crê naquele que me enviou, tem a vida eterna, e não entrará em condenação, mas passou da morte para a vida.
João 5:24

 

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