把DataGrid数据输出到Excel文件

'把DataGrid输出到Excel文件
'调用的方法:DataGridToExcel(Page, DataGrid1, filename)

Public Function DataGridToExcel(ByRef Page As System.Web.UI.Page, ByVal MyDataGrid As System.Web.UI.WebControls.DataGrid, ByVal FileName As String) As String
    Dim resp As HttpResponse
    resp = Page.Response
    resp.ContentEncoding = System.Text.Encoding.GetEncoding("utf-7")
    resp.ContentType = "application/vnd.ms-excel"
    resp.AddHeader("Content-Disposition", "attachment; filename=" + FileName)
    resp.Charset = "gb2312"

    Dim tw As New System.IO.StringWriter
    Dim hw As New System.Web.UI.HtmlTextWriter(tw)

    ' Get the HTML for the control.
    MyDataGrid.RenderControl(hw)
    ' Write the HTML back to the browser.
    resp.Write(tw.ToString())
    ' End the response.
    resp.End()
End Function

'存在分页时的做法
Sub Button1_Click(sender As Object, e As System.EventArgs)
    MyDataGrid.AllowPaging = "false"
    BindGrid()
   
    MyDataGrid.SelectedItemStyle.BackColor=Color.white
    MyDataGrid.AlternatingItemStyle.BackColor=Color.white
    MyDataGrid.ItemStyle.BackColor=Color.white
    MyDataGrid.HeaderStyle.BackColor=Color.white
    MyDataGrid.HeaderStyle.ForeColor=Color.red

    HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=Filel.xls")

    dim resp as HttpResponse = Page.Response
    resp.ContentEncoding = System.Text.Encoding.GetEncoding("Big5")
    Response.ContentType = "application/vnd.ms-excel"
    Response.Charset = ""
    Me.EnableViewState = False
    Dim tw As New System.IO.StringWriter()
    Dim hw As New System.Web.UI.HtmlTextWriter(tw)
    MyDataGrid.RenderControl(hw)
    Response.Write(tw.ToString())
    Response.End()

    MyDataGrid.AllowPaging = "true"
    BindGrid()
End Sub
阅读更多
个人分类: ASP.NET
上一篇在 ADO 和 ADO.NET 中管理离线数据
下一篇通用技术」真的可以成为普通高中通用课程吗?
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭