Как экспортировать данные нескольких заголовков gridview в excel
У меня есть gridview, который имеет несколько заголовков, добавленных во время выполнения. Я хочу экспортировать данные gridview в excel с тем же форматом. Но пока я пытаюсь это сделать, цвет нескольких строк заголовка продолжает выходить за пределы области таблицы в выходном файле excel, что нежелательно. Код, используемый для экспорта данных, выглядит следующим образом. Пожалуйста, помогите решить эту проблему.
Спасибо.
Что я уже пробовал:
<code>protected void Button1_Click(object sender, EventArgs e) { Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls"); Response.Charset = ""; Response.ContentType = "application/vnd.ms-excel"; using (StringWriter sw = new StringWriter()) { HtmlTextWriter hw = new HtmlTextWriter(sw); gdView.HeaderRow.BackColor = Color.White; foreach (TableCell hcell in gdView.HeaderRow.Cells) { hcell.BackColor = Color.White; } foreach (GridViewRow row in gdView.Rows) { { row.BackColor = Color.White; foreach (TableCell cell in row.Cells) { cell.CssClass = "textmode"; } } } gdView.RenderControl(hw); //style to format numbers to string string style = @"<style> .textmode { } </style>"; Response.Write(style); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); } } public override void VerifyRenderingInServerForm(System.Web.UI.Control control) { // controller }</code>
Maciej Los
Все, что вам нужно сделать, это отладить вашу программу.
Richard Deeming
NB: Вы не создаете файл Excel. Вы создаете HTML-файл и просите Excel импортировать его. В результате у вас будет очень мало контроля над форматированием.
Если вы хотите полностью контролировать форматирование, вам нужно будет создать настоящий файл Excel. Существуют различные бесплатные библиотеки, которые позволят вам это сделать. Например:
* EPPlus[^];
* ClosedXML[^];
* SDK OpenXML[^];