提问者:小点点

更快地将带有彩色单元格的数据网格视图导出到excel


我进行了搜索,只能找到不带颜色信息将datagridview导出到excel的方法。我想将datagridview导出到excel,并保持单元格颜色不变。现在,我一个细胞一个细胞地做,速度非常慢。我正在寻找一种更快的方法来做这件事?

任何建议或指点都会很有帮助。

谢谢曼苏尔


共1个答案

匿名用户

Public Shared Sub ExportGridViewToExcelGridView(ByVal Filename As String, ByRef gvr As GridView, ByRef currentPage As Page)

    Dim HtmlForm As System.Web.UI.HtmlControls.HtmlForm = New System.Web.UI.HtmlControls.HtmlForm()
    currentPage.Controls.Add(HtmlForm)
    HtmlForm.Controls.Add(gvr)
    currentPage.Response.Clear()
    currentPage.Response.Buffer = True
    currentPage.Response.AddHeader("Content-Disposition", "attachment; filename=" & Filename)
    currentPage.Response.ContentType = "application/vnd.ms-excel"
    currentPage.Response.ContentEncoding = System.Text.Encoding.UTF8
    currentPage.Response.Charset = ""
    currentPage.EnableViewState = False
    Using strwriter As New StringWriter
        Dim htmlwrt As HtmlTextWriter = New HtmlTextWriter(strwriter)
        HtmlForm.RenderControl(htmlwrt)
        htmlwrt.Flush()
        currentPage.Response.Write(strwriter.ToString)
        currentPage.Response.End()
    End Using
End Sub

您可以使用此函数,确保在包含gridview的页面中将EnableEventValidation设置为false,并将paging属性设置为False..