如何在 ASP.NET MVC 中有效地将数据导出到 Excel
提供的指南尝试使用效率较低的 HTML 将数据导出到 Excel基于的方法。要创建正确的 Excel 文件,建议使用 EPPlus 等库。
EPPlus 库
EPPlus 提供 LoadFromDataTable 和 LoadFromCollection 方法来用数据填充 Excel 范围。以下是如何在代码中实现它:
代码:
using (ExcelPackage package = new ExcelPackage()) { var ws = package.Workbook.Worksheets.Add("My Sheet"); //true generates headers ws.Cells["A1"].LoadFromDataTable(dataTable, true); }
默认情况下,列或属性名称将用作标题。您还可以使用 EPPlus 库应用格式设置、表格样式等。
保存到文件
要保存 Excel 文件,请创建一个名为的自定义 FileResult EpplusResult:
代码:
public class EpplusResult:FileResult { public EpplusResult(ExcelPackage package) : base("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { Package = package; } public ExcelPackage Package { get; private set; } }
这允许您编写以下操作:
代码:
public FileResult ExportData() { ExcelPackage package = new ExcelPackage(); var ws = package.Workbook.Worksheets.Add("My Sheet"); // Load data to the worksheet ws.Cells[1, 1].LoadFromDataTable(table, true, TableStyles.Light1); return new EpplusResult(package) { FileDownloadName = "SomeFile.xlsx" }; }
奖励:导出分页数据
要使用PagedList导出分页数据,可以修改action:
代码:
public ActionResult ExportData() { var pagedList = db.Customers.ToPagedList(pageNumber, pageSize); ExcelPackage package = new ExcelPackage(); var ws = package.Workbook.Worksheets.Add("My Sheet"); ws.Cells[1, 1].LoadFromCollection(pagedList, true, TableStyles.Light1); return new EpplusResult(package) { FileDownloadName = "Customers.xlsx" }; }
以上是如何使用 EPPlus 将 ASP.NET MVC 中的数据高效导出到 Excel?的详细内容。更多信息请关注PHP中文网其他相关文章!