Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengeksport Data dengan Cekap ke Excel Menggunakan EPPlus?

Bagaimana untuk Mengeksport Data dengan Cekap ke Excel Menggunakan EPPlus?

Barbara Streisand
Barbara Streisandasal
2025-01-05 15:28:40266semak imbas

How to Efficiently Export Data to Excel Using 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn