Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengeksport Data dengan Cekap ke Excel daripada Aplikasi ASP.NET MVC Menggunakan EPPlus?

Bagaimana untuk Mengeksport Data dengan Cekap ke Excel daripada Aplikasi ASP.NET MVC Menggunakan EPPlus?

Linda Hamilton
Linda Hamiltonasal
2025-01-05 15:24:39606semak imbas

How to Efficiently Export Data to Excel from an ASP.NET MVC Application Using EPPlus?

Cara Mengeksport Data ke Excel

Ikhtisar

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.

Menggunakan EPPlus untuk Penciptaan Excel

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);
}

Pemformatan dan Gaya

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);

Hasil Fail Tersuai untuk EPPlus

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);
        }
    }
}

Pelaksanaan dalam Pengawal Tindakan

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!

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