Anurag 87 Ответов: 1

Как экспортировать таблицы в формате Excel


У меня есть gridview с двумя верхними и одним нижним колонтитулами, и я пытаюсь экспортировать gridview в формат excel, но после экспорта он не будет показывать верхний и Нижний колонтитулы, а только записи

Что я уже пробовал:

public void ExportGridToExcel(GridView Grd1,string Filename)
        {
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.Buffer = true;
            HttpContext.Current.Response.ClearContent();
            HttpContext.Current.Response.ClearHeaders();
            HttpContext.Current.Response.Charset = "";
            string FileName = "FileName" + DateTime.Now + ".xls";
            StringWriter strwritter = new StringWriter();
            HtmlTextWriter htmltextwrtter = new HtmlTextWriter(strwritter);
            HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
            HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
            HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + Filename);
            Grd1.GridLines = GridLines.Both;
            Grd1.HeaderStyle.Font.Bold = true;
            Grd1.RenderControl(htmltextwrtter);
            HttpContext.Current.Response.Write(strwritter.ToString());
            HttpContext.Current.Response.End();
}

Karthik_Mahalingam

показать разметку gridview

Richard Deeming

Вы не экспортируете в формате Excel; вы отправляете HTML, но сообщаете браузеру, что это файл Excel. Затем Excel делает все возможное, чтобы преобразовать HTML в a реальный" Файл Excel, но вы не можете контролировать, как он это делает.

Попробуйте использовать библиотеку, которая позволит вам создать реальный файл Excel вместо этого. Например:

* EPPlus[^];
* ClosedXML[^];
* SDK OpenXML[^];

Karthik_Mahalingam

возможное решение.

1 Ответов

Рейтинг:
2

ZurdoDev

Сделайте так, как предложил Ричард в комментариях. Если нет, то нам придется посмотреть, как выглядят верхние и нижние колонтитулы, потому что я сделал то, что вы пытаетесь сделать.