【问题标题】:Code Upgrade - Export to Excel 2007 and up代码升级 - 导出到 Excel 2007 及更高版本
【发布时间】:2012-05-07 18:24:12
【问题描述】:

我在 C# asp.net Web 应用程序中有一些默认功能,可以将 gridview 导出到 excel 文件。此代码在 Excel 2007 中运行良好,但在 2010 年将无法打开。我需要升级此代码以在两者中工作,或找到新的解决方案。任何帮助都会很棒。

当前代码:

            gvReport.Style.Add("font-size", "1em");
            Response.Clear();
            string attachment = "attachment; filename=FileName.xls";
            Response.ClearContent();
            Response.AddHeader("content-disposition", attachment);
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            StringWriter sw = new StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            gvReport.GridLines = GridLines.Horizontal;
            gvReport.RenderControl(htw);
            Response.Write(sw.ToString());
            Response.End();

【问题讨论】:

  • 您尝试在 Excel 2007+ 中打开时遇到什么错误?我的猜测是您遇到了安全问题,而不是 Excel 问题。
  • 顺便说一句,您没有将其导出为 OpenXML。您将其导出为 excel(显然不是 2010)可以理解的 HTML。你最好的选择是像 Antonio 建议的 EPP。

标签: c# asp.net export-to-excel


【解决方案1】:

使用EPPlus 并将数据导出到 Excel,我假设 gvReport 是 GridView 控件,因此使用绑定到该 GridView 的数据并使用 EPPlus 将其导出。

这很简单,在这里您可以找到 ashx 处理程序的示例,该处理程序将返回从 DataTable 创建的 excel 文件:

https://stackoverflow.com/a/9569827/351383

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多