Vs'12 asp.net C#MVC,互联网应用模板,Kendo UI,EF Code First
我想要做的是同时使用我的所有dataModels
并构建一个Excel
文件,格式良好且所有好东西 - 将某些数据放入某些字段。这些文件将相当复杂, - 添加和检查复选框在Excel中,围绕其他格式的字段创建框
现在我可以告诉他们将数据从HTML导出到excel,但这不是我想要的,我能想到的另一种方法是从C#
运行controller
代码通过class
,然后使其可下载/和/或导出它?
这是“最佳实践”,如果不是,那是什么?
答案 0 :(得分:2)
您需要使用像EPPlus这样的库将Excel创建为byte[]
或Stream
。然后,您可以使用FileActionResult:
public ActionResult CreateExcel()
{
var data=_repository.GetExcelData();
byte[] excel=CreateExcelAsByteArray(data);
return File(excel, "application/vnd.ms-excel", "excel.xlsx");
}
使用此方法,您可以提供dinamically创建的Excel文件。
更新:要创建Excel文件,您可以使用EPPlus:
public byte[] CreateExcelAsByteArray(IEnumerable<int> elems)
{
using(var ms=new MemoryStream())
using(var package=new ExcelPackage())
{
var ws = package.Workbook.Worksheets.Add("worksheet");
int i=1;
foreach(var elem in elems)
{
ws.Cells("A"+i).Value=elem;
i++;
}
package.SaveAs(ms);
return ms.ToArray();
}
}