关闭

把DataGrid数据输出到Excel文件

724人阅读 评论(0) 收藏 举报
'把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
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10890次
    • 积分:158
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条
    文章分类