求助:导出excel表格标题为乱码

hanying9112975 2010-11-20 09:54:35
做了一个按钮,将gridview中的数据导出保存为excel表格,具体程序如下

Public Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
Response.Clear()
Response.Buffer = True
Response.Charset = "GB2312"
Dim header As String = DropDownList1.Text.ToString
Response.AppendHeader("Content-Disposition", "attachment;filename=aaa.xls")
Response.ContentEncoding = System.Text.Encoding.UTF7
Response.ContentType = "application/ms-excel"
Dim oStringWriter As System.IO.StringWriter = New System.IO.StringWriter
Dim oHtmlTextWriter As System.Web.UI.HtmlTextWriter = New System.Web.UI.HtmlTextWriter(oStringWriter)
Me.GridView1.RenderControl(oHtmlTextWriter)
Response.Output.Write(oStringWriter.ToString)
Response.Flush()
Response.End()
End Sub


其中,导出execl的标题我想做成参数可变类型的,我就把这一句

Response.AppendHeader("Content-Disposition", "attachment;filename=aaa.xls")

改成了

Response.AppendHeader("Content-Disposition", "attachment;filename="+title+".xls")
其中title是一个string型的变量

想要做到的就是导出execl的标题是根据情况变化的
但是
但是我这样做,导出的文件名却是乱码,而且连xsl文件格式都没了

求助各位解释下为什么会是乱码,怎么解决

也麻烦帮我解释下导出文件那段程序的原理,我没看明白怎么把数据从gridview弄出来的

致谢

...全文
869 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
o47108113 2011-10-21
  • 打赏
  • 举报
回复
火狐貌似不支持吧!
天下在我心 2010-11-20
  • 打赏
  • 举报
回复
Response.AppendHeader("Content-Disposition", "attachment;filename=aaa.xls")
这句改下

Response.AppendHeader("Content-Disposition", "inline;filename=aaa.xls")

这样试下,还有要utf8
hanying9112975 2010-11-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xlfancy 的回复:]
问题的根源在数据库
将所有字符型字段用nvarchar就可
[/Quote]

title内有中文,怎么处理,怎么将字段用nvarchar??
xlfancy 2010-11-20
  • 打赏
  • 举报
回复
问题的根源在数据库
将所有字符型字段用nvarchar就可
机器人 2010-11-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 windcoldice 的回复:]
Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8) + ".xls");
[/Quote]

顶这个。。。title里有中文吧。
xrongzhen 2010-11-20
  • 打赏
  • 举报
回复
文件名是中文吧?

Response.ContentEncoding = System.Text.Encoding.UTF7
这句话改一下
Response.ContentEncoding = System.Text.Encoding.UTF8
zqh6656232 2010-11-20
  • 打赏
  • 举报
回复
不会吧,,重开下啊
windcoldice 2010-11-20
  • 打赏
  • 举报
回复
Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8) + ".xls");
shichao102471077 2010-11-20
  • 打赏
  • 举报
回复
路过,看看 学习了
浪子-无悔 2010-11-20
  • 打赏
  • 举报
回复
呵呵,学习了一招。。
hanying9112975 2010-11-20
  • 打赏
  • 举报
回复
已解决
改成了
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(title, System.Text.Encoding.UTF8) + ".xls")

谢谢各位

ps: 一个新问题
这是我导出的标题格式是 “中文字”+系统时间,例如“报表2010-11-20+13_37_51.xls”

这里面怎么会有"+"号那?

62,272

社区成员

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

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

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

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