1. Exportar um DataTable para Excel: Esta é uma das melhores formas de se exportar informações para o excel, já que o programador monta exatamente como quer o arquivo em excel (apesar de no exemplo abaixo estar usando comandos como "\t" e "\n" para separar as colunas e linhas no excel, pode-se também utilizar html para montar a tabela e definir cores e estilos a planilha.
public static void ExportarExcel(
DataTable dt,
HttpResponse Response)
{
Response.ClearContent();
Response.ContentEncoding = System.Text.Encoding.Default;
Response.AddHeader(
"content-disposition",
"attachment; filename=relatorio.xls");
Response.ContentType = "application/vnd.ms-excel";
string tab = "";
foreach (DataColumn dc in dt.Columns)
{
Response.Write(tab + dc.ColumnName);
tab = "\t";
}
Response.Write("\n");
int i;
foreach (DataRow dr in dt.Rows)
{
tab = "";
for (i = 0; i < dt.Columns.Count; i++)
{
Response.Write(tab + dr[i].ToString());
tab = "\t";
}
Response.Write("\n");
}
Response.End();
}
2. Exportar um grid view para Excel: É a forma mais fácil de se exportar informações para excel, pois basicamente você exportará o GridView da forma que ele consta em sua página.
Obs: Apesar de nesta forma de exportação já estarmos tratando o erro "Controle 'gridview1' do tipo 'GridView' deve ser inserido em uma marca de formato com runat=server", como o controle da geração do arquivo excel é do framework, muitas vezes podem ocorrer outros erros que podem acabar tomando muito tempo para tratar, por isso recomendo a primeira forma de exportação, onde o controle da geração do arquivo está com o programador.
HtmlForm form = new HtmlForm();
string attachment =
"attachment;
filename=Relatorio.xls";
Response.ClearContent();
Response.AddHeader(
"content-disposition",
attachment);
Response.ContentType = "application/ms-excel";
StringWriter stw = new StringWriter();
HtmlTextWriter htextw = new
HtmlTextWriter(stw);
form.Controls.Add(gridview1);
this.Controls.Add(form);
form.RenderControl(htextw);
Response.Write(stw.ToString());
Response.End();
Basicamente, basta substituir o nome da gridview 'gridview1' pelo nome de sua gridview, e inserir o código dentro do evento que realizará a exportação dos dados para o excel.
2 comentários:
Muito obrigado pelo tuto.
Utilizando o código e alterando conforme necessidade, consegui gerar o arquivo do grid no excel.
Legal. Se precisar, veja alguns dos outros tutoriais ou entre em contato.
Boa sorte!
Postar um comentário