Выгружаем DataTable в Excel из веб-страницы

Работая над биллингом одной системы (обработка всяких разных таблиц на веб-странице), возникла необходимость периодического построения сложных отчетов.

С моим опытом программирования заниматься этим достаточно долго (хотя 100%, что я допишу этот функционал), я решил, что лучше нужную таблицу экспортировать в Excel, а потом уже мощнейшими средствами этого табличного процессора строить сводные таблицы.

Собственно, ловите функцию экспорта DataTable в Excel. Все это может происходить, например, по нажатию кнопки на веб-форме.

 

public void ExportToExcel(DataTable dt)
{
  if (dt.Rows.Count > 0)
  {
    string filename = "DownloadMobileNoExcel.xls"; 
    System.IO.StringWriter tw = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
    DataGrid dgGrid = new DataGrid();
    dgGrid.DataSource = dt;
    dgGrid.DataBind();

    //Get the HTML for the control.
    dgGrid.RenderControl(hw);
    //Write the HTML back to the browser.
    //Response.ContentType = application/vnd.ms-excel;
    Response.ContentType = "application/vnd.ms-excel";
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + "");
    this.EnableViewState = false;
    Response.Write(tw.ToString());
    Response.End();
  }
}

Метод брал вот здесь.

Метки: C-#, программирование

ПечатьE-mail

Добавить комментарий


Защитный код
Обновить