Reasons and solutions of Excel garbled code are derived

  • 2020-12-07 04:00:27
  • OfStack

 
protected void Excel_Click(object sender, EventArgs e) 
{ 
Response.Charset = "UTF-8"; 
Response.ClearContent(); 
Response.Clear(); 
Response.ContentEncoding = System.Text.Encoding.UTF8; 
Response.HeaderEncoding = System.Text.Encoding.UTF8; 
Response.AddHeader("content-disposition", "attachment; filename=MyExpress.xls"); 
Response.ContentType = "application/excel"; 
System.IO.StringWriter sw = new System.IO.StringWriter(); 
HtmlTextWriter htw = new HtmlTextWriter(sw); 
// turn off paging 
GridView1.AllowPaging = false; 
dataBind(); 
GridView1.RenderControl(htw); 
Response.Write(sw.ToString()); 
Response.End(); 
// turn the paging on again 
GridView1.AllowPaging = true; 
dataBind(); 
} 

Key:
 
Response.Charset = "UTF-8";// Add encoding format  
Response.ClearContent(); 
Response.Clear(); 
Response.ContentEncoding = System.Text.Encoding.UTF8;// Add an encoding format for table content  
Response.HeaderEncoding = System.Text.Encoding.UTF8;// Add the encoding format to the table header  

If you can't solve the above can also be used
 
Response.ClearContent(); 
Response.Clear(); 
Response.AddHeader("content-disposition", "attachment; filename=sumlate.xls"); 
Response.Charset = "GB2312"; 
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); 
Response.ContentType = "application/excel"; 
System.IO.StringWriter sw = new System.IO.StringWriter(); 
HtmlTextWriter htw = new HtmlTextWriter(sw); 
if (GridView2.Rows.Count > 0) 
{ 
GridView2.RenderControl(htw); 
} 
else 
{ 
GridView1.RenderControl(htw); 
} 
Response.Write(sw.ToString()); 
Response.End(); 

Key:
 
Response.Charset = "GB2312"; 
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); 

Notice that the main reason is actually coding format problems.

Now you can prevent the problem of confusing code when exporting

Related articles: