Comment exporter efficacement des données vers Excel dans ASP.NET MVC
Le guide fourni tente d'exporter des données vers Excel en utilisant un HTML moins efficace -approche basée. Pour créer un fichier Excel approprié, il est recommandé d'utiliser une bibliothèque comme EPPlus.
Bibliothèque EPPlus
EPPlus fournit les méthodes LoadFromDataTable et LoadFromCollection pour remplir une plage Excel avec des données. . Voici comment l'implémenter dans votre code :
Code :
using (ExcelPackage package = new ExcelPackage()) { var ws = package.Workbook.Worksheets.Add("My Sheet"); //true generates headers ws.Cells["A1"].LoadFromDataTable(dataTable, true); }
Par défaut, les noms de colonnes ou de propriétés seront utilisés comme en-têtes. Vous pouvez également appliquer une mise en forme, des styles de tableau et bien plus encore à l'aide de la bibliothèque EPPlus.
Enregistrement dans un fichier
Pour enregistrer le fichier Excel, créez un FileResult personnalisé appelé EpplusResult :
Code :
public class EpplusResult:FileResult { public EpplusResult(ExcelPackage package) : base("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { Package = package; } public ExcelPackage Package { get; private set; } }
Cela vous permet d'écrire l'action suivante :
Code :
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" }; }
Bonus : Exporter les données paginées
Pour exporter les données paginées avec PagedList, vous pouvez modifier le action :
Code :
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" }; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!