C# 代码升级-导出到Excel 2007及更高版本

C# 代码升级-导出到Excel 2007及更高版本,c#,asp.net,export-to-excel,C#,Asp.net,Export To Excel,我在C#asp.net web应用程序中有一些默认功能,可以将gridview导出到excel文件。这段代码在Excel2007中运行得很好,但是它不会在2010年打开。我需要升级此代码以在这两种情况下工作,或者找到新的解决方案。任何帮助都会很好 当前代码: gvReport.Style.Add("font-size", "1em"); Response.Clear(); string attachment = "attac

我在C#asp.net web应用程序中有一些默认功能,可以将gridview导出到excel文件。这段代码在Excel2007中运行得很好,但是它不会在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,我假定gvReport iz GridView控件,所以使用绑定到该GridView的数据,并使用EPPlus将其导出

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


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