一个关于datalist导出到excel的问题

loverdotnet 2009-03-16 02:02:30
以下是代码:
Response.Clear()
Response.BufferOutput = True
Response.Charset = "GB2312"
Response.AppendHeader("Content-Disposition", "attachment;filename=" & HttpUtility.UrlEncode("exp.xls"))
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312")
Response.ContentType = "application/ms-excel"
dgcheckbox.EnableViewState = False
Dim myCItrad As New System.Globalization.CultureInfo("ZH-CN", True)
Dim oStringWriter As New System.IO.StringWriter(myCItrad)
Dim oHtmlTextWriter As New System.Web.UI.HtmlTextWriter(oStringWriter)
dgcheckbox.RenderControl(oHtmlTextWriter)
Response.Write(oStringWriter.ToString())
Response.End()
问题是,输出到excel后中文变成了韩文,正是晕阿,请各位帮忙看看,或是提供一下段简单易懂的代码(datalist导出到excel)
...全文
469 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫苑随风 2010-04-16
  • 打赏
  • 举报
回复
我也遇到了 啊
mubai007 2009-03-16
  • 打赏
  • 举报
回复
应该是这句有问题
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312")

如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!

改为下面这句
Response.ContentEncoding = System.Text.Encoding.UTF8;

参考http://blog.csdn.net/mubai007/archive/2009/03/11/3981997.aspx
kofkyo 2009-03-16
  • 打赏
  • 举报
回复
编码用UTF-8,不行就UTF-7
loverdotnet 2009-03-16
  • 打赏
  • 举报
回复
能不能有哪位可以帮我看一下,最上面的代码为设么会变成韩文?谢谢啦
pgameli 2009-03-16
  • 打赏
  • 举报
回复
xiaohe185 2009-03-16
  • 打赏
  • 举报
回复
public void DataListToExcel(DataList dataList)
{
HttpContext.Current.Response.Clear();//清除缓冲区流中的所有的内容输出
HttpContext.Current.Response.Buffer = true;//获取一个值,该值指示是否缓冲输出,并在完成处理整个响应之后将其发送
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls");//.xls 将http头添加到输出流 DateTime.Now.DayOfYear.ToString()
HttpContext.Current.Response.ContentEncoding = Encoding.UTF7;//设置输出流的http字符集
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";//设置输出流的http MiMe类型
CultureInfo formatProvider = new CultureInfo("ZH-CN", true);//提供有关特定区域性的信息及如何设置日期和排序字符串的格式
StringWriter stringwriter = new StringWriter(formatProvider);//实现一个用于将字符串写入System.IO.TextWriter,该信息存储在基础System.Text.StringBulider中
HtmlTextWriter htmlwriter = new HtmlTextWriter(stringwriter);//将标记字符和文本写入到Asp.net服务器控件输出流,此类提供Asp.net服务器控件在向客户端呈现标记时所使用的格式设置功能

dataList.RenderControl(htmlwriter);//将服务器控件的内容输出到所提供的System.Web.UI.HtmlTextWriter对象中,如果已启用跟踪功能,则存储有关控件的跟踪信息


HttpContext.Current.Response.Write(stringwriter.ToString());//将一个字符数组写入http相应数据流
HttpContext.Current.Response.End();//将当前的所有缓冲的输出发送到客户端,停止该页的执行,并引发//System.Web.httpApplication.EndRequest事件
}

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧