My asp.net page has grid-view with 5 columns. I export them to excel but I get empty column as well. Here is my code in C# asp.net code behind;
protected void ExportToExcel(object sender, EventArgs e)
{
string nowT = DateTime.Now.ToString("yyyy-MM-dd");
string excelNameExport = "attachment;filename=" + nowT + "_LT_Report.xls";
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", excelNameExport);
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.BinaryWrite(System.Text.Encoding.UTF8.GetPreamble());
Response.ContentType = "application/vnd.ms-excel";
using (StringWriter sw = new StringWriter())
{
HtmlTextWriter hw = new HtmlTextWriter(sw);
//To Export all pages
mygrid.AllowPaging = false;
this.gvBind();
for (int i = 0; i < mygrid.Columns.Count; i++)
{
if (mygrid.Columns[i].HeaderText == "TARİH")
{
}
else if (mygrid.Columns[i].HeaderText == "SAAT")
{
}
else if (mygrid.Columns[i].HeaderText == "ADI SOYADI")
{
}
else if (mygrid.Columns[i].HeaderText == "SON_4_KNO")
{
}
else if (mygrid.Columns[i].HeaderText == "DURUMU")
{
}
else
{
mygrid.Columns.RemoveAt(i);
this.mygrid.Columns[i].Visible = false;
mygrid.DataBind();
}
}
mygrid.DataBind();
mygrid.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(Control control)
{
/* Verifies that the control is rendered */
}
Everything works fine. When I export to excel it looks like this: