Exportando dados para Word e Excel usando C#
Há algum tempo atrás tive um problema com exportação para Word e Excel, no componente RadGrid do Telerik. O problema estava na exportação dos dados para Word e Excel do Office 2007.
Em busca de uma solução que fosse resolver este problema de exportação, indiferente da versão do Office que o usuário possui em sua máquina, eu e meu Gerente de Projetos utilizamos um artifico do Office em que uma estrutura de tabela (table - HTML) é transformada em tabela para o Word ou para o Excel:
Abaixo a descrição de como pode ser feita essa exportação:
- Cria-se uma string vazia;
- Escreve na string uma estrutura de tabela em HTML, neste caso a tabela deverá ter os dados a serem exportados;
- Alteramos os ContentType e AddHeader da página que irá exportar os dados;
- Retorne o valor da string para o usuário.
Abaixo segue um exemplo do código para exportar dados:
//Primeiro cria uma string
string tabela = String.Empty;
//Monte uma estrutura HTML
tabela += <table>
tabela += <tr><td>Informação 1</td><td>Informação 2</td></tr>
tabela += <tr><td>Informação 3</td><td>informação 4</td></tr>
tabela += </table>
//Escolha se irá exportar para Word ou Excel
HttpContext.Current.Response.ContentType = "application/vnd.doc";
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=Dados.doc");
HttpContext.Current.Response.ContentType = "application/vnd.xls";
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=Dados.xls");
//Define o Encoding da página
HttpContext.Current.Response.ContentEncoding = Encoding.Default;
//Escreva a string
HttpContext.Current.Response.Write(tabela);
HttpContext.Current.Response.End();
É uma solução simples que funciona tanto no Office (Word/Excel) 2003 e 2007. O código está escrito em C#, mas pode ser utilizado com VB sem nenhum problema.
Comentários (3)
Tags: 
