DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Exportação para o Excel em .Net – Formatando células

Hoje iremos entrar um pouco mais no detalhe, onde mostraremos como recuperar um conjunto de células e manipular a formatação das mesmas.

Exportação para o Excel em .Net –Formatando células

Olá pessoal, no último artigo nós vimos como fazer uma exportação simples, inserindo valores nas células.

Hoje iremos entrar um pouco mais no detalhe, onde mostraremos como recuperar um conjunto de células e manipular a formatação das mesmas.

Podemos utilizar nosso mesmo projeto para este exemplo. A diferença é que desta vez iremos formatar os títulos das colunas, simulando o cabeçalho de um relatório.

Vou remover do código abaixo os comentários que já foram citados no artigo anterior, deixando apenas comentário nas linhas novas, para evitar que o exemplo fique com a visualização poluída.

No evento onclick de nosso botão, teremos:

private void simpleButton1_Click(object sender, EventArgs e)

        {

            Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();

 

            //Objeto que representa um conjunto de células

            Microsoft.Office.Interop.Excel.Range celulas;

 

            excelApp.Workbooks.Add(Type.Missing);

            excelApp.Visible = true;            //Exportação de colunas

            excelApp.Cells[1,1] = "Codigo";

            excelApp.Cells[1,2] = "Nome";

            excelApp.Cells[1,3] = "Data de Cadastro";

            excelApp.Cells[1,4] = "Percentual de Desconto";

 

            //Vamos agora centralizar os títulos

            celulas = excelApp.get_Range("A1", "D1");

            celulas.HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter;


            //Recuperamos o conjunto de células de A1 até D1

            celulas = excelApp.get_Range("A1", "D1");

            //Após recuperarmos, podemos manipular o conjunto

            //Neste caso, mudaremos a cor para cinza

            celulas.Interior.Color = ColorTranslator.ToWin32(Color.LightGray);

            //colocaremos a font como negrito

            celulas.Font.Bold = true;

            //inserimos borda na célula

            celulas.Borders.LineStyle = XlLineStyle.xlContinuous;

 

            //Exportação das linhas

            excelApp.Cells[2, 1] = "1";

            excelApp.Cells[2, 2] = "Sr. Adocica";

            excelApp.Cells[2, 3] = "01/01/2010";

            excelApp.Cells[2, 4] = "0,2";

 

            excelApp.Cells[3, 1] = "2";

            excelApp.Cells[3, 2] = "Beto Barbosa Jr";

            excelApp.Cells[3, 3] = "01/06/2010";

            excelApp.Cells[3, 4] = "0,3";

 

            //Agora vamos formatar as colunas de nosso "Relatório"

            //Para isso precisamos primeiro recuperar as célula

            celulas = excelApp.get_Range("C2", "C3");

            celulas.NumberFormat = "dd/mm/aaaa";

            celulas = excelApp.get_Range("D2", "D3");

            celulas.NumberFormat = "0,00%";

 

            //Vamos exibir um total, com o numero de registros

            //do relatório, onde aproveitaremos para mesclar

            //3 células

            excelApp.Cells[4, 1] = "Total de Registros";

            celulas = excelApp.get_Range("A4", "C4");

            celulas.Merge(Type.Missing);

            excelApp.Cells[4, 4] = "2";

 

            //Após exportar as linhas, podemos autoAjustar as colunas

            excelApp.Columns.AutoFit();

 

            //Salvamos a planilha passando o caminho como parâmetro

            excelApp.ActiveWorkbook.SaveCopyAs("C:\\Excel_DevMedia.xls");

 

            //Informamos que nossa planilha foi salva para que não sejamos

            //questionados ao fechar a mesma

            excelApp.ActiveWorkbook.Saved = true;

 

            //fechamos a aplicação

            excelApp.Quit();

}

            É isso aí pessoal, vou ficando por aqui. Hoje vimos mais detalhes desta exportação. Creio que isso já seja suficiente para exportarmos boa parte de nossos relatórios para o excel.

Espero que tenham gostado, fiquem a vontade para dar feedback, críticas e sugestões de novos temas para os próximos artigos.

Um abraço.
Ricardo Coelho.
http://www.agilexp.blogspot.com/
http://www.rwsolution.com.br


Ricardo Da Silva Coelho
Graduado em Analise de Sistemas, Pós-graduando em Engenharia de software, mais de 7 anos de experiência em desenvolvimento de software, onde atuou em projetos de diversos seguimentos como varejo, telecomunicações, ERPs etc e nas mais variadas plataformas(Desktop, Web e Mobile). Articulista do portal...
O que você achou deste post?

    10 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Robson Da Silva Mendes
Mais um vez excelente artigo me ajudou muito, parabens
[há +1 ano] - Responder

 

Day Dilson
Ricardo,

Belo post fiz a implementação e deu certinho.

Só estou com um problema, minha aplicação está em um servidor IIS ai quando vou rodar o metodo da o seguinte erro:
404 - Arquivo ou diretório não encontrado.
O recurso que você está procurando pode ter sido removido, ter tido seu nome alterado ou estar temporariamente indisponível.

Quando roda na maquina local não aparece o erro.

Fico no aguardo
[há +1 ano] - Responder

 

Luiz Agnelo C. Maia
Ja passei por isto, não tinha o pacote office instlado no servidor. Confira se é isto mesmo, e nos conte, ok?
Valeu

[]s
[há +1 ano] - Responder
 

Day Dilson
Boa tarde Luis,

Entao instalei o excel no servidor, mas o erro continua.

Tem mais alguma dica?

Fico no aguardo e obrigado pela ajuda anterior
[há +1 ano] - Responder
 

Wesley Yamazack
Olá Day , solicitei um dos nossos consultores para te ajudar.

Um abraço.
[há +1 ano] - Responder
 

Henrylle Da Silva Maia
Olá Day. Importante você observar que do lado de desenvolvimento você deve ter permissão de leitura e escrita na pasta de destino(por isso funciona). No lado servidor estas permissões não existem por padrão já que você usa por padrão um usuário anônimo no IIS. Você deve colocar para que esse usuário consiga escrever na pasta de destino, no caso o "C:\". Tente trocar para "c:\temp". Acredito que o usuário anônimo consiga escrever nativamente nesta pasta sem nenhum problema. Espero ter ajudado.
[há +1 ano] - Responder
 

Marllon Nascimento Ramos
boa tarde!
sou novo aqui e gostaria de saber como faço para formatar uma coluna no excel para quando exportar receber um tipo texto com 20 ou mais caracteres, sendo que esses caracteres são números, pois quando eu posso o valor(ex.:52991817263323764854) de um datatable inserindo no excel quando eu o abro o valor é truncado e os cinco últimos caracteres são substituidos por '0' (usando ex. de cima: 52991817263323700000).

mt obrigado desde já!
[há +1 mês] - Responder

 

Henrylle Da Silva Maia
Olá Marllon,

Você precisa especificar o formato da célula no excel. Por padrão ele interpreta que caracteres apenas numéricos(por maior que seja), não são do tipo texto. Dê uma olhada com mais calma na API e tente informar isso na célula. Espero ter ajudado.
[há +1 mês] - Responder
 

Talita Paes
Ricardo,

Muito bom o Post, parabéns!

Estou com um problema e gostaria de ver se consegue me ajudar.

Eu já tenho este excel, já consigo abrí-lo, porém...faço uma verificação para saber se a primeira linha e coluna estão preenchidas, se sim preciso inserir uma nova linha acima...não faço idéia de como faço para inserir uma nova linha no excel...

Consegue me ajudar?

Obrigada!
[há +1 mês] - Responder

 

Pedro Bajotto Filho.
Talita

A própria classe Range possui um método chamado Insert, que realiza esse papel.

Bons estudos.
[há +1 mês] - Responder
 
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03