gridview 导出excel代码,以及关于乱码问题
2011-05-20 15:36
375 查看
/// <param name="FileType">文件类型:application/ms-excel</param>
/// <param name="FileName">文件名字</param>
/// <param name="gridview"></param>
public static void ExportToExcel(this Page _page, string FileType, string FileName, GridView gridview)
{
_page.Response.Clear();
_page.Response.Buffer = true;
_page.Response.Charset = "utf-8";
_page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
_page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());
_page.Response.ContentType = FileType;
////这行很重要,是解决乱码的关键之所在。
_page.Response.Write("<meta http-equiv=Content-Type content=/"text/html; charset=utf-8/">");
_page.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
gridview.RenderControl(hw);
_page.Response.Output.Write(tw.ToString());
_page.Response.Flush();
_page.Response.End();
}
最初尝试各种办法,换各种编码,偶尔还是有gridview会出现乱码。原因是各个gridview的stream不一样,编码或许会出现问题。
最终还是靠加粗的那行代码,解决了问题。
/// <param name="FileName">文件名字</param>
/// <param name="gridview"></param>
public static void ExportToExcel(this Page _page, string FileType, string FileName, GridView gridview)
{
_page.Response.Clear();
_page.Response.Buffer = true;
_page.Response.Charset = "utf-8";
_page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
_page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());
_page.Response.ContentType = FileType;
////这行很重要,是解决乱码的关键之所在。
_page.Response.Write("<meta http-equiv=Content-Type content=/"text/html; charset=utf-8/">");
_page.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
gridview.RenderControl(hw);
_page.Response.Output.Write(tw.ToString());
_page.Response.Flush();
_page.Response.End();
}
最初尝试各种办法,换各种编码,偶尔还是有gridview会出现乱码。原因是各个gridview的stream不一样,编码或许会出现问题。
最终还是靠加粗的那行代码,解决了问题。
相关文章推荐
- Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]
- 解决gridview导出到excel中汉字出现乱码的问题
- 扩展gridview的导出excel功能乱码问题的解决
- 解决gridview导出到excel中汉字出现乱码的问题
- 关于从GridView表中导出数据到Excel表中,身份证或者长度过长的数据在Excel中无法正常显示的问题
- 关于从GridView表中导出数据到Excel表中,身份证或者长度过长的数据在Excel中无法正常显示的问题
- Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]
- Mantistbt系统导出excel为xml,以及csv 中文乱码问题解决
- 如何解决gridview以及table导出Excel的科学计数法问题
- Mysql中文乱码以及导出为sql语句和Excel问题解决
- Asp.net Gridview 导出到Excel【解决编码乱码问题】
- Mysql中文乱码以及导出为sql语句和Excel问题解决
- 扩展gridview的导出excel功能乱码问题的解决
- 解决gridview导出到excel中汉字出现乱码的问题
- gridview导出Excel解决方案整理(解决乱码问题)
- 扩展gridview的导出excel功能乱码问题的解决
- 将GridView中的数据导出到Excel中下载并且解决乱码的问题
- 将GridView中的数据导出到Excel中下载并且解决乱码的问题
- 关于GridView导出Excel的一些问题(采用Ajax出现的的问题及解决方法)
- 解决GridView导出Excel后,分页,排序,中文乱码的问题