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(); 
} 
 关键: 
 
Response.Charset = \"UTF-8\";//添加编码格式 
Response.ClearContent(); 
Response.Clear(); 
Response.ContentEncoding = System.Text.Encoding.UTF8;//表格内容添加编码格式 
Response.HeaderEncoding = System.Text.Encoding.UTF8;//表头添加编码格式 
 上边如果解决不了还可以用 
 
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(); 
 关键: 
 
Response.Charset = \"GB2312\"; 
Response.ContentEncoding = System.Text.Encoding.GetEncoding(\"GB2312\"); 
 注意观察,主要原因其实就是编码格式问题。 
现在就能防止导出时候乱码问题了
 
                
                
                    本文地址:https://www.stayed.cn/item/22600
                    转载请注明出处。
                    本站部分内容来源于网络,如侵犯到您的权益,请 联系我