Maison >développement back-end >C++ >Comment exporter efficacement des données vers Excel à partir d'une application ASP.NET MVC à l'aide d'EPPlus ?

Comment exporter efficacement des données vers Excel à partir d'une application ASP.NET MVC à l'aide d'EPPlus ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-05 15:24:39610parcourir

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

Comment exporter des données vers Excel

Présentation

Cette question se concentre sur l'exportation de données vers Excel à partir d'une application ASP.NET MVC. Bien que le guide fourni suggère une approche de conversion HTML vers Excel, cet article explore l'utilisation d'EPPlus, une bibliothèque de packages Excel, pour créer des fichiers Excel appropriés.

Utilisation d'EPPlus pour la création Excel

Propositions EPPlus des méthodes telles que LoadFromDataTable et LoadFromCollection pour remplir une plage Excel avec des données. Voici un exemple de création d'un fichier 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);
}

Formatage et styles

EPPlus permet de formater et d'appliquer des styles de tableau aux données exportées. Par exemple :

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

Résultat de fichier personnalisé pour EPPlus

Pour éviter les problèmes de gestion des flux, une classe FileResult personnalisée peut être créée pour gérer les réponses du package 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);
        }
    }
}

Implémentation en 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" };
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn