asp.net生成execel文件打开时,薄名和title名都是乱码。

LGame 2007-01-15 04:54:43
asp.net生成execel文件打开时,薄名和title名都是乱码。

内容是正确的!

我的代码是这样的,
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(csvfilename + ".csv", Encoding.UTF8));
HttpContext.Current.Response.BinaryWrite(Encoding.Default.GetBytes(csvcontent));

HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();

考了一段别人的asp的代码,就没有问题,

帮帮我,感谢大家了!!
...全文
940 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
ysge0123 2008-04-24
  • 打赏
  • 举报
回复
各位高手:我今天把因为格式化硬盘丢失的文件找回来,大部分都不错,但是有一个execel文件,只让我看了一眼原来的正确格式,就变成了我不认识的乱码,不知道怎么把它改回来,特向大家中的高手请教,谢谢!
wujie08 2007-04-05
  • 打赏
  • 举报
回复
sign
wengjm 2007-01-18
  • 打赏
  • 举报
回复
加上这一句就可以了
Response.Charset="GB2312";
LGame 2007-01-17
  • 打赏
  • 举报
回复
Response.AppendHeader("Content-Disposition","attachment;filename=SmsExcel.xls");

就是文件的名字不对,

我的名字是活的,里面有中文字,

然后打开 就是title和sheet得名字是乱码!
LGame 2007-01-17
  • 打赏
  • 举报
回复
试试
flash_angle 2007-01-17
  • 打赏
  • 举报
回复
net中默认是utf8如果在程式中写了gb2312还没用,可以改web.config中uft8为gb2312这样两个地方都改就ok,我测试过了!(这是对简体的,如果是繁体就是big5)
LGame 2007-01-17
  • 打赏
  • 举报
回复
帮忙顶啊!!

有待解决!!
AA 2007-01-17
  • 打赏
  • 举报
回复
看看吧~!经过测试 ~!可以翻页~!导出!
Response.Clear();
Response.Buffer = true;
Response.Charset="GB2312";
Response.AppendHeader("Content-Disposition","attachment;filename=SmsExcel.xls");
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
Response.ContentType="application/ms-excel";
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter= new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter);
this.a.DataSource = this.GetDt();
this.a.DataBind();
this.a.RenderControl(oHtmlTextWriter);

//this.DataGrid_list.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
Snega 2007-01-16
  • 打赏
  • 举报
回复
这里:
HttpContext.Current.Response.ContentType = "application/octet-stream";
改成
Response.contentType="application/vnd.ms-excel";试试
LGame 2007-01-16
  • 打赏
  • 举报
回复
谢谢!!
楼上的哥哥,

你的方法是生成文件,再去下载!

有没有,直接打开的方法!!!
冷月孤峰 2007-01-16
  • 打赏
  • 举报
回复
http://www.cnblogs.com/wf5360308/articles/621401.html
deadshot123 2007-01-16
  • 打赏
  • 举报
回复
aspx的编码跟
HttpUtility.UrlEncode(csvfilename + ".csv", Encoding.UTF8));
HttpContext.Current.Response.BinaryWrite(Encoding.Default.GetBytes(csvcontent));

这些地方的编码问题
hatita 2007-01-16
  • 打赏
  • 举报
回复
以前碰到过,当时没解决,最后换成,直接在服务器端生成Excel,然后再给用户下载,而不是用html方式输出。
LGame 2007-01-16
  • 打赏
  • 举报
回复
我知道!!!

直接保存没有问题!!就是打开不行!!!!!!

并且还提示打开2回!

帮帮忙!!
LGame 2007-01-16
  • 打赏
  • 举报
回复
sign
xk2y 2007-01-16
  • 打赏
  • 举报
回复
sign
LGame 2007-01-16
  • 打赏
  • 举报
回复
up
lxxszw 2007-01-16
  • 打赏
  • 举报
回复
up
LGame 2007-01-16
  • 打赏
  • 举报
回复
HttpUtility.UrlEncode(csvfilename + ".csv", Encoding.UTF8));

其实就是这句得问题!!

因为文件名中有中文,所以打开时他的title和sheet名是乱吗!!!


谁有办法啊!!
LGame 2007-01-16
  • 打赏
  • 举报
回复
我去试试

谢谢了!
加载更多回复(10)

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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