Vamos lá...
Recursos Usados
Microsoft Excel
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:
Filter - exibimos apenas arquivos .xls;
InitialDirectory - definimos a pasta inicial(c:\dados\xls) que será apresentada na janela de diálogo;
FileName - Criamos um nome para o arquivo que será salvo usando nome 'DadosListView_Excel_' mais um número (miliesgundos) mais e extensão .xls;
ValidateNames - true - Somente serão aceitos nomes de arquivos válidos;
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:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net
Preenchendo um controle ListView com DataReader - Macoratti.net