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

Bagaimana untuk Mengeksport Data dengan Cekap ke Fail Excel Menggunakan EPPlus?

Jan 05, 2025 pm 09:30 PM

How to Efficiently Export Data to an Excel File Using EPPlus?

Bagaimana cara saya mengeksport ke Excel?

Panduan tidak menunjukkan cara mencipta fail Excel, ia menunjukkan penggodaman yang mencipta fail HTML dengan Jadual . Excel akan cuba mengimport fail csv atau HTML dengan jadual menggunakan tetapan lalai yang selalunya boleh gagal.

Lebih mudah untuk mencipta fail Excel yang betul menggunakan perpustakaan seperti EPPlus.
I Saya pasti ini telah dijawab sebelum ini tetapi saya tidak dapat mencari jawapan yang menunjukkan kedua-dua cara membuat fail Excel daripada data dan menetapkan jenis kandungan yang sesuai untuk xlsx fail.

EPPlus menyediakan kaedah LoadFromDataTable dan LoadFromCollection untuk mengisi julat Excel dengan data yang diambil daripada DataTable atau koleksi generik. Nama lajur atau sifat digunakan sebagai pengepala masing-masing.

public ActionResult ExportData()
{

    //Somehow, load data to a DataTable

    using (ExcelPackage package = new ExcelPackage())
    {
        var ws = package.Workbook.Worksheets.Add("My Sheet");
        //true generates headers
        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);
    }
}
Salin selepas log masuk

LoadFromDataTable atau LoadFromCollection mengembalikan julat sel Excel yang boleh digunakan untuk memformat jadual:

var range=ws.Cells["A1"].LoadFromDataTable(table);
range.Style.Numberformat.Format = "#,##0.00";
range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Right;
Salin selepas log masuk

Anda juga boleh memohon gaya jadual ke julat, atau hantar gaya yang diingini kepada LoadFromDataTable atau LoadFromCollection, cth:

ws.Cells[1,1].LoadFromDataTable(table, true, TableStyles.Light1);
Salin selepas log masuk

Wiki Githup perpustakaan menunjukkan cara memformat hasil, menjana formula, Jadual Pangsi, mengendalikan jadual dll.

Menyimpan ke MemoryStream mungkin menjadi isu jika anda ingin mencipta lembaran yang agak besar. Menulis data yang sama dua kali, sekali ke MemoryStream dan kemudian menyalinnya ke output, membazirkan kitaran. Menulis terus ke aliran keluaran daripada tindakan MVC adalah amalan yang tidak baik walaupun. Caranya ialah dengan mencipta FileResult tersuai yang mengendalikan pakej EPPlus dan mengembalikannya dan bukannya FileResult yang dikembalikan oleh Fail, cth:

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)
    {
        // grab chunks of data and write to the output stream
        Stream outputStream = response.OutputStream;
        using (Package)
        {
            Package.SaveAs(outputStream);
        }
    }
}
Salin selepas log masuk

Yang membenarkan anda menulis tindakan berikut:

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"};
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengeksport Data dengan Cekap ke Fail Excel Menggunakan EPPlus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Langkah Format Fungsi Fungsi C Langkah Penukaran Kes Langkah Format Fungsi Fungsi C Langkah Penukaran Kes Mar 03, 2025 pm 05:53 PM

Langkah Format Fungsi Fungsi C Langkah Penukaran Kes

Gulc: Perpustakaan C dibina dari awal Gulc: Perpustakaan C dibina dari awal Mar 03, 2025 pm 05:46 PM

Gulc: Perpustakaan C dibina dari awal

Apakah jenis nilai yang dikembalikan oleh fungsi bahasa C? Apa yang menentukan nilai pulangan? Apakah jenis nilai yang dikembalikan oleh fungsi bahasa C? Apa yang menentukan nilai pulangan? Mar 03, 2025 pm 05:52 PM

Apakah jenis nilai yang dikembalikan oleh fungsi bahasa C? Apa yang menentukan nilai pulangan?

Bagaimana Perpustakaan Templat St Standard (STL) berfungsi? Bagaimana Perpustakaan Templat St Standard (STL) berfungsi? Mar 12, 2025 pm 04:50 PM

Bagaimana Perpustakaan Templat St Standard (STL) berfungsi?

Apakah definisi dan peraturan panggilan fungsi bahasa C dan apakah itu Apakah definisi dan peraturan panggilan fungsi bahasa C dan apakah itu Mar 03, 2025 pm 05:53 PM

Apakah definisi dan peraturan panggilan fungsi bahasa C dan apakah itu

Di manakah nilai pulangan fungsi bahasa C yang disimpan dalam ingatan? Di manakah nilai pulangan fungsi bahasa C yang disimpan dalam ingatan? Mar 03, 2025 pm 05:51 PM

Di manakah nilai pulangan fungsi bahasa C yang disimpan dalam ingatan?

Penggunaan dan perkongsian frasa yang berbeza Penggunaan dan perkongsian frasa yang berbeza Mar 03, 2025 pm 05:51 PM

Penggunaan dan perkongsian frasa yang berbeza

Bagaimanakah saya menggunakan algoritma dari STL (jenis, mencari, mengubah, dll) dengan cekap? Bagaimanakah saya menggunakan algoritma dari STL (jenis, mencari, mengubah, dll) dengan cekap? Mar 12, 2025 pm 04:52 PM

Bagaimanakah saya menggunakan algoritma dari STL (jenis, mencari, mengubah, dll) dengan cekap?

See all articles