0
我已经成功地将数据从gridview导出到Excel作为单个工作表,但我想添加多个工作表。我搜索了一下,并尝试了几个选项,但没有任何工作,但我越来越接近。我认为这只是几行代码的问题。现在,我有以下代码:在MVC中将数据导出到Excel
public ActionResult Download()
{
if (Session["BP"] != null)
{
return new DownloadFileActionResult((GridView)Session["BP"], "BestPrices.xls");
}
else
{
return new JavaScriptResult();
}
}
我填充使用确定年代和GridView会话变量:
GridView gv = new GridView();
gv.DataSource = gridTable;
gv.DataBind();
// Session["BP"] = myGridViews;
Session["BP"] = g;
我已经建立了GridView的思想,这将有助于数组,但我不能出口,现在。
GridView[] g = new GridView[retailerTables.Count];
int n = 0;
foreach (string key in keys)
{
myGridViews[n] = retailerTables[key];
g[n] = new GridView();
g[n].DataSource = retailerTables[key];
g[n].DataBind();
n++;
}
我的基本想法是,excel文件中的每个工作表都对应一个gridview。
我见过各种第三方选项,但我不知道它们有多可靠,如果我最终会调试接口错误。我更喜欢在MVC中使用核心类和选项。
该应用程序在网站上运行,用户将点击链接下载该文件。
零售商表是:
Dictionary<string, DataTable> retailerTables= new Dictionary<string, DataTable>();
因此,每个工作都会有销售数据,零售商和用户终于可以只需点击不同的零售商和看到的销售数据。
有没有人知道如何解决这个问题,以导出多个表格,如我所概述的。
您不想在Web服务器上使用Excel COM组件。它们不是为那里的使用而设计的,而且可能会发生大量的错误。我在很多项目中使用过[EPPlus](http://epplus.codeplex.com),并且它工作得很好。使用起来非常简单,并且轻松处理多个工作表。 – krillgar
@krillgar说了什么。我通常使用[NPOI](https://npoi.codeplex.com/)来满足我的Excel需求,并且没有投诉。 – Travis
我解决了使用NPOI。我稍后会发布代码。 –