Exportar a excel un DataTable en Asp.Net

export_to_excel
A continuacion se muestra el codigo para exportar un datatable a un archivo de excel sin necesidad de adicionar librerias externas.

publicstaticvoidExportDataTableToExcel(stringfileName,DataTable_datatable){

   Stringstyle =@"<style> .textmode { mso-number-format:\@; } </script> ";
   HttpContext.Current.Response.Clear();
   HttpContext.Current.Response.AddHeader("content-disposition",string.Format("attachment; filename={0}", fileName));
   HttpContext.Current.Response.ContentType ="application/ms-excel";

   using(StringWritersw =newStringWriter())
   {
   using(HtmlTextWriterhtw =newHtmlTextWriter(sw))
      {
      // Crear una tabla que va a contener unos datos.
      Tabletable =newTable();
      TableRowrow =newTableRow();

      for(intj = 0; j < _datatable.Columns.Count; j++)
      {
         TableHeaderCellheaderCell =newTableHeaderCell();
         headerCell.Text = _datatable.Columns[j].ColumnName;
         row.Cells.Add(headerCell);
      }
      // Adiciona el encabezado
      table.Rows.Add(row);

      for(inti = 0; i < _datatable.Rows.Count; i++)
      {
         row =newTableRow();
         for(intj = 0; j < _datatable.Columns.Count; j++)
         {
            TableCellcell =newTableCell();
            cell.Text = _datatable.Rows[i][j].ToString();
            row.Cells.Add(cell);
         }
       // Adiciona las filas a la tabla
       table.Rows.Add(row);
       }

        //  render the table into the htmlwriter
        table.RenderControl(htw);

        ///Type text
        HttpContext.Current.Response.Write(style);
        //  render the htmlwriter into the response
        HttpContext.Current.Response.Write(sw.ToString());
        HttpContext.Current.Response.End();
        }
     }
  }
Anuncios