如何从ASP.NET MVC导出数据到MS Excel

我试图导出数据从MVC excel。 我不明白为什么;

public void DownloadAsExcelOrderReports() { try { var list = _reportWork.GetList(); GridView gv = new GridView(); gv.DataSource = list; gv.DataBind(); Response.ClearContent(); Response.Buffer = true; Response.ContentEncoding = System.Text.Encoding.UTF32; Response.AddHeader("content-disposition", "attachment; filename=Marklist.xls"); Response.ContentType = "application/ms-excel"; Response.Charset = ""; using (StringWriter sw = new StringWriter()) { using (HtmlTextWriter htw = new HtmlTextWriter(sw)) { gv.RenderControl(htw); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); } } } catch (Exception ex) { } } 

这是我在网上find的代码。我得到这样的输出。 在这里输入图像说明 通常情况下,它必须自动填充到excel中。我看不到,我错过了什么。

GridView是一个WebControl。 你把数据放进去(DataBind),它会发出html(RenderControl),它应该被发送到浏览器,浏览器会把它显示为一个表(tr和td标签)。

在你的情况下,你试图显示一个Excel文档中的HTML代码,这是没有意义的。

我发现的最好的方法是使用EPPlus,您可以从NuGet Package Manager中获得EPPlus。 你必须把你的数据和你想要的excel文件关联起来。 这有点烦琐,但别无select。