Maison >développement back-end >C++ >Comment exporter efficacement des données vers Excel à partir d'une application ASP.NET MVC à l'aide d'EPPlus ?
Cette question se concentre sur l'exportation de données vers Excel à partir d'une application ASP.NET MVC. Bien que le guide fourni suggère une approche de conversion HTML vers Excel, cet article explore l'utilisation d'EPPlus, une bibliothèque de packages Excel, pour créer des fichiers Excel appropriés.
Propositions EPPlus des méthodes telles que LoadFromDataTable et LoadFromCollection pour remplir une plage Excel avec des données. Voici un exemple de création d'un fichier Excel :
using (ExcelPackage package = new ExcelPackage()) { var ws = package.Workbook.Worksheets.Add("My Sheet"); ws.Cells["A1"].LoadFromDataTable(dataTable, true); var stream = new MemoryStream(); package.SaveAs(stream); string fileName = "myfilename.xlsx"; string contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; stream.Position = 0; return File(stream, contentType, fileName); }
EPPlus permet de formater et d'appliquer des styles de tableau aux données exportées. Par exemple :
var range = ws.Cells["A1"].LoadFromDataTable(table); range.Style.Numberformat.Format = "#,##0.00"; range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Right; ws.Cells[1,1].LoadFromDataTable(table, true, TableStyles.Light1);
Pour éviter les problèmes de gestion des flux, une classe FileResult personnalisée peut être créée pour gérer les réponses du package EPPlus :
public class EpplusResult : FileResult { public EpplusResult(ExcelPackage package) : base("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { if (package == null) { throw new ArgumentNullException("package"); } Package = package; } public ExcelPackage Package { get; private set; } protected override void WriteFile(HttpResponseBase response) { Stream outputStream = response.OutputStream; using (Package) { Package.SaveAs(outputStream); } } }
public FileResult ExportData() { ExcelPackage package = new ExcelPackage(); var ws = package.Workbook.Worksheets.Add("My Sheet"); ... ws.Cells[1, 1].LoadFromDataTable(table, true, TableStyles.Light1); return new EpplusResult(package) { FileDownloadName = "SomeFile.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!