Vb.net出口gridview到Excel

我无法导出我的GridView到一个Excel文件。 除了当我点击导出button时,一切正常,应该导出到Excel文件的数据显示在网页上。 我怀疑这是Response.ContentType和我指定的文件名的问题。 但是,我已经通过了多个文件和例子,似乎这两个是我的情况下的根本问题。 谁能帮忙?

<asp:Button ID="btnExport" runat="server" Text="Export To MS Excel File" CssClass="btnMain" OnClick="btnExport_Click" /> Protected Sub btnExport_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim filename As String = "PerformanceEval Status Report" & Date.Now.Year.ToString & "-" & _ formatNumberTo2Digits(DateTime.Now.Month) & "-" & formatNumberTo2Digits(DateTime.Now.Day) & ".xls" With Page.Response .Clear() .Buffer = True .AddHeader("content_disposition", "attachment;filename" & filename) .Charset = "" '--to open the Excel file without saving then comment out the line below '.Cache.SetCacheability(HttpCacheability.NoCache) '.ContentType = "application/vnd.xls" 'data appears on web page '.ContentType = "application/vnd.ms-excel" 'try to download .aspx document NOT .xml .ContentType = "application/ms-excel" 'data appears on web page End With Dim strWriter As New System.IO.StringWriter Dim htmlWriter As System.Web.UI.HtmlTextWriter = New HtmlTextWriter(strWriter) Dim gvexport As GridView = New GridView gvexport.AutoGenerateColumns = False gvexport.CssClass = "gridData" gvexport.GridLines = GridLines.Horizontal gvexport.HeaderStyle.CssClass = "gridHeader" gvexport.RowStyle.CssClass = "gridRow" gvexport.AlternatingRowStyle.CssClass = "gridRow_Alt" gvexport.FooterStyle.CssClass = "gridFooter" Dim dv As DataView = New DataView(Me.ds.Tables(0)) 'default is sorted by last name 'Dim dv As DataView = New DataView(Me.ds.Tables(0)) dv.RowFilter = GetFilter() '-- add columns for report addGVcolumn("Employee Name", "EmployeeName", gvexport, -1, HorizontalAlign.Left) addGVcolumn("Employee ID", "SID", gvexport, -1, HorizontalAlign.Left) addGVcolumn("Email", "WorkEmail", gvexport, -1, HorizontalAlign.Left) addGVcolumn("StatusID", "StatusID", gvexport, 50, HorizontalAlign.Center) gvexport.DataSource = dv gvexport.DataBind() gvexport.RenderControl(htmlWriter) Response.Output.Write(strWriter.ToString()) Response.Flush() Response.End() 

再次,我能够生成的内容,但无法使我的数据导出为Excel。 非常感谢!

你给错了标题:

 .AddHeader "content-disposition", "attachment; filename="& filename &";"