C# GridView导出到Excel正在导出整个aspx页面

C# GridView导出到Excel正在导出整个aspx页面,c#,asp.net,gridview,C#,Asp.net,Gridview,我正在尝试将gridview的内容导出到excel。我有一些代码: public void ExcelDownload(object sender, EventArgs e) { Response.Clear(); Response.Buffer = true; Response.Charset = "UTF-8"; Response.AppendHeader("Content-Disposition", "attachm

我正在尝试将gridview的内容导出到excel。我有一些代码:

public void ExcelDownload(object sender, EventArgs e)
    {
        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "UTF-8"; 
        Response.AppendHeader("Content-Disposition", "attachment;filename=MailingList.xls");
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
        Response.ContentType = "application/ms-excel";
        this.EnableViewState = false;
        System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("EN-US", true);
        System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
        MailingList.RenderControl(oHtmlTextWriter);
        Response.Write(oStringWriter.ToString());
    }

单击链接时运行。除了导出整个网页,而不仅仅是gridview(MailingList)之外,它工作得很好。有人知道如何解决此问题吗?

从技术上讲,这不是导出到excel,而是您发送了一个带有错误标题的html,以欺骗浏览器使用excel打开此内容。如果您坚持使用此解决方案,则必须在单独的aspx页面上仅呈现GridView

此解决方案可能存在问题,excel it自身将警告用户内容与扩展名不同,因为您发送的html和响应标题表明这是excel文件。我敢打赌,客户端上的一些反恶意软件或服务器上的类似软件将阻止此响应,因为提供与标题中声明的内容不同的内容是已知的恶意软件行为


更好地使用(xls)或/和(xlsx)并完全控制excel导出。

好的,我现在正在尝试ePlus。希望它能起作用!感谢您的帮助。哦,它工作得很好,您可以在这里看到将DataTable导出到xlsx的示例