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
Libérer: 2025-01-05 15:24:39
original
632 Les gens l'ont consulté

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);
}
Copier après la connexion

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);
Copier après la connexion

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);
        }
    }
}
Copier après la connexion

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" };
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal