asp.net导出Excel乱码的原因及解决方法

//method1:

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(); 
} 


//method2:
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(); 


application/vnd.ms-excel和application/ms-excel都可以。


原文出处:

http://www.jb51.net/article/46996.htm

你可能感兴趣的:(.Net使用,C#编程)