首頁 >後端開發 >C++ >如何使用 EPPlus 將資料從 ASP.NET MVC 應用程式高效能匯出到 Excel?

如何使用 EPPlus 將資料從 ASP.NET MVC 應用程式高效能匯出到 Excel?

Linda Hamilton
Linda Hamilton原創
2025-01-05 15:24:39609瀏覽

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

如何將資料匯出到 Excel

概述

本問題將重點放在從 ASP.NET MVC 應用程式將資料匯出到 Excel。雖然提供的指南建議了 HTML 到 Excel 的轉換方法,但本文探討如何使用 EPPlus(一個 Excel 套件庫)來建立正確的 Excel 檔案。

使用 EPPlus 建立 Excel

EPPlus 提供LoadFromDataTable 和 LoadFromCollection 等方法可使用資料填入 Excel 區域。以下是建立 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);
}

格式和樣式

EPPlus 允許對匯出的資料進行格式化和套用表格樣式。例如:

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

EPPlus 的自訂檔案結果

為了避免串流處理問題,可以建立自訂FileResult 類別來管理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);
        }
    }
}

Action Controller 中的實作

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

以上是如何使用 EPPlus 將資料從 ASP.NET MVC 應用程式高效能匯出到 Excel?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn