asp.net导出Excel乱码的原因及解决方法
asp.net导出Excel乱码的原因及解决方法
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:protectedvoidExcel_Click(objectsender,EventArgse){Response.Ch...

复制代码 代码如下:

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");

注意观察,主要原因其实就是编码格式问题。

现在就能防止导出时候乱码问题了

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新asp.net教程学习
热门asp.net教程学习
编程开发子分类