ホームページ >バックエンド開発 >C++ >EPPlus を使用して ASP.NET MVC アプリケーションから Excel にデータを効率的にエクスポートする方法

EPPlus を使用して ASP.NET MVC アプリケーションから Excel にデータを効率的にエクスポートする方法

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-05 15:24:39652ブラウズ

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

データを Excel にエクスポートする方法

概要

この質問は、ASP.NET MVC アプリケーションから Excel にデータをエクスポートすることに焦点を当てています。提供されているガイドでは HTML から Excel への変換アプローチを提案していますが、この記事では、適切な Excel ファイルを作成するための Excel パッケージ ライブラリである EPPlus の使用について説明します。

Excel の作成に EPPlus を使用する

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

アクションコントローラーの実装

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。