首頁 > 後端開發 > C++ > 如何使用EPPlus高效導出資料到Excel?

如何使用EPPlus高效導出資料到Excel?

Barbara Streisand
發布: 2025-01-05 15:28:40
原創
274 人瀏覽過

How to Efficiently Export Data to Excel Using EPPlus?

如何將資料匯出到Excel

提供的指南示範了使用表格產生HTML 檔案的解決方法,但這種方法在以下情況下可能不可靠: Excel 解釋並匯入這些檔案。更有效的方法是使用 EPPlus 等庫建立專用 Excel 檔案。

使用 EPPlus

EPPlus 提供 LoadFromDataTable 和 LoadFromCollection 方法來填入 Excel 範圍分別使用資料表或通用集合中的資料。列或屬性名稱在載入期間用作標題。

範例程式碼:

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);
    }
}
登入後複製

格式與樣式:

載入資料後,您可以進一步自訂 Excel🎜>

var range = ws.Cells["A1"].LoadFromDataTable(table);
range.Style.Numberformat.Format = "#,##0.00"; // Set number format
range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Right; // Set horizontal alignment
登入後複製
載入資料後,您可以進一步自訂 Excel🎜>

載入資料後,您可以進一步自訂 Excel🎜>

載入資料後,您可以進一步自訂 Excel並設定樣式range:

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);
        }
    }
}
登入後複製

自訂輸出:

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" };
}
登入後複製

為了緩解建立大檔案時的潛在問題,或避免重複寫入,您可以為EPPlus建立自訂FileResult處理程序packages:

這個自訂結果可以在控制器中使用action:此方法可確保直接寫入輸出流,從而優化大檔案的效能。

以上是如何使用EPPlus高效導出資料到Excel?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板