Soalan ini memfokuskan pada mengeksport data ke Excel daripada aplikasi ASP.NET MVC. Walaupun panduan yang disediakan mencadangkan pendekatan penukaran HTML-ke-Excel, artikel ini meneroka menggunakan EPPlus, perpustakaan pakej Excel, untuk mencipta fail Excel yang betul.
tawaran EPPlus kaedah seperti LoadFromDataTable dan LoadFromCollection untuk mengisi julat Excel dengan data. Berikut ialah contoh mencipta fail 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 membenarkan pemformatan dan penggunaan gaya jadual pada data yang dieksport. Contohnya:
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);
Untuk mengelakkan isu dengan pengendalian strim, kelas FileResult tersuai boleh dibuat untuk mengurus respons pakej 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" }; }
Atas ialah kandungan terperinci Bagaimana untuk Mengeksport Data dengan Cekap ke Excel daripada Aplikasi ASP.NET MVC Menggunakan EPPlus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!