Heim >Backend-Entwicklung >C++ >Wie exportiere ich Daten mithilfe von EPPlus effizient aus einer ASP.NET MVC-Anwendung nach Excel?

Wie exportiere ich Daten mithilfe von EPPlus effizient aus einer ASP.NET MVC-Anwendung nach Excel?

Linda Hamilton
Linda HamiltonOriginal
2025-01-05 15:24:39653Durchsuche

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

So exportieren Sie Daten nach Excel

Übersicht

Diese Frage konzentriert sich auf den Export von Daten nach Excel aus einer ASP.NET MVC-Anwendung. Während in der bereitgestellten Anleitung ein HTML-zu-Excel-Konvertierungsansatz vorgeschlagen wird, geht es in diesem Artikel um die Verwendung von EPPlus, einer Excel-Paketbibliothek, zum Erstellen richtiger Excel-Dateien.

Verwendung von EPPlus für die Excel-Erstellung

EPPlus bietet Methoden wie LoadFromDataTable und LoadFromCollection, um einen Excel-Bereich mit Daten zu füllen. Hier ist ein Beispiel für die Erstellung einer Excel-Datei:

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

Formatierung und Stile

EPPlus ermöglicht die Formatierung und Anwendung von Tabellenstilen auf die exportierten Daten. Zum Beispiel:

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

Benutzerdefiniertes Dateiergebnis für EPPlus

Um Probleme mit der Stream-Verarbeitung zu vermeiden, kann eine benutzerdefinierte FileResult-Klasse erstellt werden, um EPPlus-Paketantworten zu verwalten:

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

Implementierung im 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" };
}

Das obige ist der detaillierte Inhalt vonWie exportiere ich Daten mithilfe von EPPlus effizient aus einer ASP.NET MVC-Anwendung nach Excel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn