【问题标题】:GridView Export to Excel is exporting entire aspx pageGridView 导出到 Excel 正在导出整个 aspx 页面
【发布时间】:2012-03-05 19:18:41
【问题描述】:

我正在尝试将 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());
    }

点击链接时运行。这工作正常,除了它导出整个网页,而不仅仅是网格视图(MailingList)。有谁知道如何解决这个问题?

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

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

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

    最好使用 NPOI (xls) 或 / 和 EPPlus (xlsx) 并完全控制您的 Excel 导出。

    【讨论】:

    • 好的,我现在正在尝试 EPPlus。希望它有效!感谢您的帮助。
    • 哦,效果很好,您可以在此处查看将 DataTable 导出到 xlsx 的示例stackoverflow.com/questions/9569401/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    相关资源
    最近更新 更多