关于 GRIDVIEW 导出EXCEL的问题.
华芸智森 2007-10-10 04:48:47
'//下面的代码是测试代码.将一个 MDX 查询绑定到 GRIDVIEW 中.
'//表头及列已经合并处理.所以是无法将表头导出的,导出前必须先处理.
'//但是,处理后导出却为乱码,缘何?
'//麻烦大家了.
Protected Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim T As New SingleCtrlDll.AdoMDNet
T.BindMDXQueryToGridView(TextBox1.Text, GridView1, , " ")
TextBox2.Text = T.GetGridViewHandHtm
T.Dispose()
End Sub
Public Overloads Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
'//
End Sub
Protected Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Response.Clear()
Response.Buffer = True
Response.Charset = "GB2312"
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls")
Response.ContentEncoding = System.Text.Encoding.UTF7
Response.ContentType = "application/ms-excel"
Me.EnableViewState = False
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(HttpUtility.UrlEncode("<html>" & Replace(oStringWriter.ToString, "<tr style=""background:#FFF"">", TextBox2.Text, , 1) & "</html>", Encoding.UTF7))
Response.Flush()
Response.End()
End Sub