Как изменить формат столбца excel на основе условия при экспорте данных gridview?
Я хотел, чтобы первые ячейки столбца листа excel были текстовыми, а другие столбцы-числовыми.
Что я уже пробовал:
Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xls", "" + Result + "")); Response.Charset = ""; Response.ContentType = "application/vnd.ms-excel"; using (StringWriter sw = new StringWriter()) { HtmlTextWriter hw = new HtmlTextWriter(sw); string style = string.Empty; //To Export all pages GridView1.AllowPaging = false; GridView1.HeaderRow.BackColor = Color.White; foreach (TableCell cell in GridView1.HeaderRow.Cells) { cell.BackColor = GridView1.HeaderStyle.BackColor; } foreach (GridViewRow row in GridView1.Rows) { row.BackColor = Color.White; foreach (TableCell cell in row.Cells) { string value = cell.Text; string text = value[0].ToString(); if (text == "0") { cell.Text = cell.Text; } if (row.RowIndex % 2 == 0) { cell.BackColor = GridView1.AlternatingRowStyle.BackColor; } else { cell.BackColor = GridView1.RowStyle.BackColor; } cell.CssClass = "textmode"; //cell.Style.Add("style", "mso-number-format:\\@"); } } GridView1.RenderControl(hw); //style to format numbers to string style = @"<style> .textmode { mso-number-format:\@;} </style>"; Response.Write(style); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); }
Member 12962919
вы можете объяснить
Karthik_Mahalingam
используя closedxml вы можете достичь почти всех задач которые могут быть выполнены с помощью interop
Richard Deeming
Вы нет экспорт данных в Excel. Вы просто генерируете HTML-фрагмент и отправляете заголовок, чтобы браузер сделал вид, что это файл Excel.
Excel сделает все возможное, чтобы преобразовать этот HTML-код в правильный файл Excel. Но у вас практически нет контроля над тем, как он это делает или как выглядит конечный результат.
Если вы хотите контролировать файл, вам нужно сгенерировать и вернуть реальный файл Excel. Вы делаете это, используя такую библиотеку, как ClosedXML, как сказал Картик.
Member 12962919
но если бы я использовал ClosedXML, то было бы необходимо, чтобы excel был установлен в клиентской системе, такой как interop.
Karthik_Mahalingam
достаточно любого средства просмотра электронных таблиц.