做了一个按钮,将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弄出来的致谢
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弄出来的致谢
这句话改一下
Response.ContentEncoding = System.Text.Encoding.UTF8
顶这个title里有中文吧。
将所有字符型字段用nvarchar就可
title内有中文,怎么处理,怎么将字段用nvarchar??
这句改下 Response.AppendHeader("Content-Disposition", "inline;filename=aaa.xls")这样试下,还有要utf8
改成了
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(title, System.Text.Encoding.UTF8) + ".xls")谢谢各位ps: 一个新问题
这是我导出的标题格式是 “中文字”+系统时间,例如“报表2010-11-20+13_37_51.xls”这里面怎么会有"+"号那?