ASP.NET GridView导出Excel

导出GridView时候没有用控件,直接用流。
在多个地方需要导出Excel,出现一个问题,有的地方导出的中文正常,但是有的地方导出的中文会出现乱码的情况。查找网上相关资料,可能问题发现是编码问题。我原来输出流字符集用的是Encoding.Default,将输出流字符集改成UTF-8仍然会有问题。
查找资料发现在导出的时候加上如下代码可解决问题:

Response.Write(“<meta http-equiv=Content-Type content=text/html;charset=GB2312>”);

完整代码如下:

public static void Export(Page page, GridView gv, string fileName)
{
  page.Response.Buffer = true;
  page.Response.Clear();
  page.Response.ClearContent();
  page.Response.ClearHeaders();
  page.Response.Charset = “GB2312″;
  page.Response.ContentEncoding = System.Text.Encoding.GetEncoding(“GB2312″);
  page.Response.AddHeader(“Content-Disposition”, “attachment;filename=”+fileName+”.xls”);
  page.Response.Write(“<meta http-equiv=Content-Type content=text/html;charset=GB2312>”);
  page.Response.ContentType = “application/excel”;
  System.IO.StringWriter sw = new System.IO.StringWriter();
  HtmlTextWriter htw = new HtmlTextWriter(sw);
  gv.RenderControl(htw);
  page.Response.Write(sw.ToString());
  page.Response.End();
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。