如何使用MVC和EF Code First – 最佳实践写入Excel
Vs'12 asp.net C#MVC,互联网应用模板,Kendo UI,EF Code First
我想要做的是使用我所有的dataModels
在一起,并build立一个Excel
文件,很好地格式化和所有的好东西 – 将某些数据放入特定的领域。 这些文件将是相当复杂的 – 添加和检查checkbox在Excel中,围绕其他格式的字段创build框
现在从我可以告诉从HTML导出数据到Excel中,但这不是我想要的,唯一的另一种方式,我可以想到的是从controller
通过class
运行C#
代码,然后使其可下载/和或导出?
这是一个“最佳实践”,如果不是什么?
您需要使用类似EPPlus的库将您的Excel创build为byte[]
或Stream
。 然后你可以使用FileActionResult来服务这个:
public ActionResult CreateExcel() { var data=_repository.GetExcelData(); byte[] excel=CreateExcelAsByteArray(data); return File(excel, "application/vnd.ms-excel", "excel.xlsx"); }
使用这种方法,您可以提供一个dinamically创build的Excel文件。
更新:要创buildExcel文件,您可以使用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(); } }