asp.net 导出excel 中文乱码解决方法 (转)
2014-07-24 15:42
796 查看
用我转载的上一篇文章 Asp.net中把DataTable或DataGrid导出为Excel 导出的文档,中文有乱码现象,
其实要解决中文乱码很简单,设置一下字符集。如下:
// 设置编码和附件格式
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
curContext.Response.Charset = "gb2312";
另外,在输出的时候,最好加上以下语句:
<meta http-equiv="content-type" content="application/ms-excel; charset=gb2312"/>
[csharp] view plaincopyprint?
// 返回客户端
dgExport.RenderControl(htmlWriter);
curContext.Response.Clear();
curContext.Response.Write("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=gb2312\"/>" + strWriter.ToString());
curContext.Response.End();
完整方法如下:
其实要解决中文乱码很简单,设置一下字符集。如下:
// 设置编码和附件格式
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
curContext.Response.Charset = "gb2312";
// 设置编码和附件格式 curContext.Response.ContentType = "application/vnd.ms-excel"; curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); curContext.Response.Charset = "gb2312";
另外,在输出的时候,最好加上以下语句:
<meta http-equiv="content-type" content="application/ms-excel; charset=gb2312"/>
[csharp] view plaincopyprint?
// 返回客户端
dgExport.RenderControl(htmlWriter);
curContext.Response.Clear();
curContext.Response.Write("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=gb2312\"/>" + strWriter.ToString());
curContext.Response.End();
// 返回客户端 dgExport.RenderControl(htmlWriter); curContext.Response.Clear(); curContext.Response.Write("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=gb2312\"/>" + strWriter.ToString()); curContext.Response.End();
完整方法如下:
/// <summary> 2./// 把DataTable内容导出excel并返回客户端 3./// </summary> 4./// <param name="dgData">待导出的DataTable</param> 5./// 创 建 人:陈文凯 6./// 创建日期:2005年10月08日 7./// 修 改 人: ranbolwb 修改导出中文乱码的问题 8./// 修改日期: 2012-05-29 9.public static void DataTable2Excel(System.Data.DataTable dtData) 10.{ 11. System.Web.UI.WebControls.DataGrid dgExport = null; 12. // 当前对话 13. System.Web.HttpContext curContext = System.Web.HttpContext.Current; 14. // IO用于导出并返回excel文件 15. System.IO.StringWriter strWriter = null; 16. System.Web.UI.HtmlTextWriter htmlWriter = null; 17. 18. if (dtData != null) 19. { 20. // 设置编码和附件格式 21. curContext.Response.ContentType = "application/vnd.ms-excel"; 22. curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); 23. curContext.Response.Charset = "gb2312"; 24. 25. // 导出excel文件 26. strWriter = new System.IO.StringWriter(); 27. htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter); 28. 29. // 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid 30. dgExport = new System.Web.UI.WebControls.DataGrid(); 31. dgExport.DataSource = dtData.DefaultView; 32. dgExport.AllowPaging = false; 33. dgExport.DataBind(); 34. 35. // 返回客户端 36. dgExport.RenderControl(htmlWriter); 37. curContext.Response.Clear(); 38. curContext.Response.Write("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=gb2312\"/>" + strWriter.ToString()); 39. curContext.Response.End(); 40. } 41.}
相关文章推荐
- asp.net 导出Excel 在Firefox中中文乱码的解决方法
- asp.net 导出Excel 在Firefox中中文乱码的解决方法
- asp.net导出Excel显示中文乱码的解决方法
- asp.net导出Excel显示中文乱码的解决方法
- asp.net 导出excel 中文乱码解决方法
- asp.net 导出Excel 乱码 解决方法
- ASP.NET 导出到EXCEL LINQ适用 自定义列 自定义数据源 解决中文乱码问题 解决方案
- Asp.NET中把DataTable导出为Excel ,中文有乱码现象解决办法
- Asp.NET导出Excel文件乱码解决若干方法 (转)
- asp.net导出Excel乱码的原因及解决方法
- 解决asp.net导出excel时中文文件名乱码
- asp.net 导出excel 中的乱码问题及 到处内容丢失开头的0 的解决方法
- asp.net导出Excel乱码的原因及解决方法
- Asp.net导出Excel乱码的解决方法
- Asp.NET导出Excel文件乱码解决若干方法
- Asp.NET导出Excel文件乱码解决若干方法
- Asp.NET导出Excel文件乱码解决方法
- Asp.NET导出Excel文件乱码 终极解决方法
- ASP.NET中Request.Form中文乱码的解决方法