【发布时间】:2014-05-29 09:45:55
【问题描述】:
我有一个需要导出到 Excel(通过按钮事件)的 GridView,我正在使用 Visual Studio 和 vb.net。
我以前从未尝试过,我有点无能为力,有没有简单的方法可以做到这一点?我认为我目前不需要任何复杂性,只需简单地导出 GridView 信息即可。
此外,我已经在 GridView 和我的数据库之间建立了连接。我尝试从其他项目添加一个有效的 Excel 导出,但我仍然错过了一些东西。
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
' Verifies that the control is rendered
End Sub
Protected Sub exportExelBtn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles exportExelBtn.Click
Dim errorCheck As Integer = 0
Dim popupscript As String = ""
If approvalGrid.Rows.Count > 0 Then
Try
Response.ClearContent()
Response.Buffer = True
Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", "TestPage.xls"))
Response.ContentEncoding = Encoding.UTF8
Response.ContentType = "application/ms-excel"
' Dim sw As New stringwriter()
Dim tw As New IO.StringWriter()
Dim htw As New HtmlTextWriter(tw)
approvalGrid.RenderControl(htw)
Response.Write(tw.ToString())
Response.[End]()
Catch ex As Exception
errorCheck = 1
End Try
Else
errorCheck = 1
End If
If errorCheck = 1 Then
'a pop up error messege feature
popupscript = "<script language='javascript'>" + "alert(" + Chr(34) + "There was an error in exporting to exel, please make sure there is a grid to export!" + Chr(34) + ");</script>"
End If
Page.ClientScript.RegisterStartupScript(Me.GetType(), "PopUpWindow", popupscript, False)
End Sub
问题是它在单击时创建的文件说它不是 Excel 格式,当我同意打开它时,我确实看到了我想要的 GridView 信息,但我也看到了许多以按钮日历形式出现的额外信息和我页面上的其他内容,我怎样才能防止这些其他内容的导出?
【问题讨论】:
-
你遇到什么问题......
-
您不能导出 GridView,您可以导出的是相同的数据(gridview 呈现)以特定格式(csv)用逗号或制表符分隔,并导出为文本和逐行,然后 Excel 会读取它并将其加载到工作表上。
-
我会用额外的信息编辑我的帖子
标签: asp.net vb.net gridview export-to-excel