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

前端技术 2023/09/08 .NET
复制代码 代码如下:

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

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。