Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengeksport Data Jadual Data ke Fail Excel (.xlsx) dengan Jenis dan Pemformatan MIME yang Betul?

Bagaimana untuk Mengeksport Data Jadual Data ke Fail Excel (.xlsx) dengan Jenis dan Pemformatan MIME yang Betul?

DDD
Lepaskan: 2025-01-05 21:18:45
asal
800 orang telah melayarinya

How to Export DataTable Data to an Excel (.xlsx) File with Proper MIME Type and Formatting?

Bagaimanakah cara saya mengeksport data jadual ke Excel menggunakan kaedah yang betul dan menetapkan jenis MIME yang betul untuk fail Excel (xlsx)?

The panduan yang disediakan tidak menunjukkan cara membuat fail Excel; sebaliknya, ia menggunakan penyelesaian yang menjana fail HTML yang mengandungi jadual. Excel mungkin menghadapi ralat pemformatan apabila cuba mengimport fail CSV atau HTML yang mengandungi jadual yang tidak mematuhi tetapan lalainya.

Membuat fail Excel tulen utilizzando EPPlus adalah lebih mudah. LoadFromDataTable dan LoadFromCollection daripada EPPlus boleh digunakan untuk mengisi julat Excel dengan data daripada DataTable atau koleksi generik. Pengepala dijana menggunakan nama lajur atau sifat, masing-masing.

public ActionResult ExportData()
{
    // Load data into 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 dan LoadFromCollection mengembalikan julat sel Excel yang boleh digunakan untuk menggunakan pemformatan pada jadual:

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

Selain itu , anda boleh menggunakan gaya jadual pada julat:

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

Memformat, formula, Jadual Pangsi dan pengendalian jadual semuanya boleh didapati dalam wiki GitHub pustaka.

Menyimpan ke MemoryStream mungkin tidak sesuai untuk helaian yang lebih besar kerana penulisan data pendua (ke memori dan aliran output). Walau bagaimanapun, mengembalikan FileResult terus daripada tindakan MVC adalah tidak digalakkan. Penyelesaiannya adalah untuk mencipta FileResult yang disesuaikan untuk pakej EPPlus:

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)
    {
        Package.SaveAs(response.OutputStream);
    }
}
Salin selepas log masuk

Ini membolehkan perkara berikut dalam tindakan anda:

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 Jadual Data ke Fail Excel (.xlsx) dengan Jenis dan Pemformatan MIME yang Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan