ホームページ > バックエンド開発 > C++ > EPPlus を使用してデータを Excel に効率的にエクスポートするにはどうすればよいですか?

EPPlus を使用してデータを Excel に効率的にエクスポートするにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-05 15:28:40
オリジナル
263 人が閲覧しました

How to Efficiently Export Data to Excel Using EPPlus?

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

提供されているガイドでは、テーブルを含む HTML ファイルを生成するための回避策が示されていますが、このアプローチは次のような場合には信頼できません。 Excel はこれらのファイルを解釈してインポートします。より効果的な方法は、EPPlus などのライブラリを使用して専用の Excel ファイルを作成することです。

EPPlus の使用

EPPlus には、Excel 範囲を設定するための LoadFromDataTable メソッドと LoadFromCollection メソッドが用意されています。それぞれ、データ テーブルまたは汎用コレクションのデータを使用します。列またはプロパティ名は、読み込み中にヘッダーとして機能します。

コード例:

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
ログイン後にコピー

出力のカスタマイズ:

大きなファイルを作成する際の潜在的な問題を軽減したり、重複書き込みを回避したりするには、EPPlus のカスタム FileResult ハンドラーを作成できます。パッケージ:

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);
        }
    }
}
ログイン後にコピー

このカスタム結果はコントローラーで使用できます。 action:

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 を使用してデータを Excel に効率的にエクスポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート