Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengeksport Data dengan Cekap ke Excel Menggunakan EPPlus?
Cara Mengeksport Data ke Excel
Panduan yang disediakan menunjukkan penyelesaian untuk menjana fail HTML dengan jadual, tetapi pendekatan ini mungkin tidak boleh dipercayai apabila Excel mentafsir dan mengimport fail ini. Kaedah yang lebih berkesan ialah mencipta fail Excel khusus menggunakan perpustakaan seperti EPPlus.
Menggunakan EPPlus
EPPlus menawarkan kaedah LoadFromDataTable dan LoadFromCollection untuk mengisi julat Excel dengan data daripada jadual data atau koleksi generik, masing-masing. Nama lajur atau sifat berfungsi sebagai pengepala semasa pemuatan.
Contoh Kod:
public ActionResult ExportData() { DataTable dataTable = GetData(); // Method to retrieve data using (ExcelPackage package = new ExcelPackage()) { var ws = package.Workbook.Worksheets.Add("My Sheet"); ws.Cells["A1"].LoadFromDataTable(dataTable, true); // Load with true to include headers 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); } }
Pemformatan dan Penggayaan:
Setelah data dimuatkan, anda boleh menyesuaikan dan menggayakan Excel dengan lebih lanjut julat:
var range = ws.Cells["A1"].LoadFromDataTable(table); range.Style.Numberformat.Format = "#,##0.00"; // Set number format range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Right; // Set horizontal alignment
Menyesuaikan Output:
Untuk mengurangkan potensi isu semasa mencipta fail besar atau untuk mengelakkan penulisan pendua, anda boleh mencipta pengendali FileResult tersuai untuk EPPlus pakej:
public class EpplusResult : FileResult { public EpplusResult(ExcelPackage package) : base("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { Package = package; } public ExcelPackage Package { get; private set; } protected override void WriteFile(HttpResponseBase response) { using (Package) { Package.SaveAs(response.OutputStream); } } }
Hasil tersuai ini kemudiannya boleh digunakan dalam pengawal tindakan:
public FileResult ExportData() { ExcelPackage package = new ExcelPackage(); var ws = package.Workbook.Worksheets.Add("My Sheet"); ... // Load and format data return new EpplusResult(package) { FileDownloadName = "SomeFile.xlsx" }; }
Pendekatan ini memastikan penulisan terus ke strim output, mengoptimumkan prestasi untuk fail besar.
Atas ialah kandungan terperinci Bagaimana untuk Mengeksport Data dengan Cekap ke Excel Menggunakan EPPlus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!