Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Wie man Dateien auf Razor-Seiten in ein Excel generiert

Razor Pages bieten einen modernen Ansatz zur Erstellung von Webseiten. In Razor Pages wird der Quellcode, der die Webseite rendert, in C# geschrieben, anstatt von einer serverseitigen Seite generiert zu werden.

Um effizient mit Excel-Dateien zu arbeiten, wird die IronXL-Bibliothek anderen wie dem POI-Java-Projekt NPOI-Paket (insbesondere bei PowerPoint-Dateien) und Office Interop empfohlen. IronXL ist eine funktionsreiche, benutzerfreundliche Bibliothek, die kein Microsoft Office benötigt und mehrere .NET-Versionen unterstützt.

Dieser Artikel demonstriert die Verwendung der IronXL-C#-Bibliothek zur Erstellung und zum Export von Excel-Tabellen mit Dummy-Daten und Zeilenüberschriften in Razor Pages.

class="hsg-featured-snippet">

Wie man Excel-Dateien in Razor Pages generiert

  1. Installieren Sie die C#-Bibliothek, um Excel-Dateien in Razor zu generieren
  2. Zugreifen oder ein neues Excel-Dokument in einer Methode erstellen
  3. Daten und Stil zum WorkBook-Objekt in Razor hinzufügen
  4. Verwenden Sie die File-Methode, um die Excel-Datei automatisch herunterzuladen, wenn der Knopf gedrückt wird
  5. Die generierte Excel-Datei inspizieren

IronXL: C# Excel Library

IronXL ist eine C#-Excel-Bibliothek, die Methoden und Funktionen bietet, um mit großen Datensätzen unter Verwendung von paralleler Verarbeitung zu arbeiten, um die Rechenleistung zu erhöhen. Sie ist benutzerfreundlich, da sie kein Verständnis der internen Abläufe erfordert und sowohl XLS- als auch XLSX-Dateien unterstützt.

IronXL ist ideal zum Importieren, Exportieren, Erstellen von Excel-Formeln und Büro-Dokumenten, ohne dass Microsoft Office installiert sein muss.

Lernen Sie, wie man Excel-Dateien in Razor Pages mithilfe von IronXL importiert und exportiert.

Generiere Excel-Datei in Razor Pages

Um Excel-Blätter in Razor Pages zu erstellen, beginnen Sie mit dem Öffnen von Visual Studio, der Erstellung einer ASP.NET Core-Webanwendung und der Installation von IronXL.

Voraussetzungen

Das Einrichten zur Erstellung von Excel-Dateien in Razor Pages erfordert:

  1. Visual Studio (neuste Version)
  2. .NET Framework 6 oder 7
  3. .NET Core-Webanwendung in Visual Studio

IronXL-Bibliothek installieren

Installieren Sie IronXL mithilfe der NuGet-Paketmanager-Konsole. Geben Sie diesen Befehl ein, um die Bibliothek in einer .NET Core-Webanwendung zu installieren:

Install-Package IronXL.Excel

Code zum Generieren einer Excel-Datei

So schreiben Sie den Code. Öffnen Sie "Index.cs" im Pages-Ordner und fügen Sie die folgende Methode hinzu:

public FileResult OnPostExport()
{
    // Create a new WorkBook with XLSX format
    WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
    // Create a new WorkSheet named "data"
    WorkSheet workSheet = workBook.CreateWorkSheet("data");

    // Add headers to the new worksheet
    workSheet["A1"].Value = "Product EN";
    workSheet["B1"].Value = "SKU";
    workSheet["C1"].Value = "Customer";

    // Make header text bold
    workSheet["A1:C1"].Style.Font.Bold = true;

    // Add dummy data to the worksheet
    workSheet["A2"].Value = "Iron Rods";
    workSheet["A3"].Value = "Mobile Phones";
    workSheet["A4"].Value = "Chargers";

    workSheet["B2"].Value = "105";
    workSheet["B3"].Value = "285";
    workSheet["B4"].Value = "301";

    workSheet["C2"].Value = "Adam";
    workSheet["C3"].Value = "Ellen";
    workSheet["C4"].Value = "Tom";

    // Convert the WorkBook to a byte array Stream for download
    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}
public FileResult OnPostExport()
{
    // Create a new WorkBook with XLSX format
    WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
    // Create a new WorkSheet named "data"
    WorkSheet workSheet = workBook.CreateWorkSheet("data");

    // Add headers to the new worksheet
    workSheet["A1"].Value = "Product EN";
    workSheet["B1"].Value = "SKU";
    workSheet["C1"].Value = "Customer";

    // Make header text bold
    workSheet["A1:C1"].Style.Font.Bold = true;

    // Add dummy data to the worksheet
    workSheet["A2"].Value = "Iron Rods";
    workSheet["A3"].Value = "Mobile Phones";
    workSheet["A4"].Value = "Chargers";

    workSheet["B2"].Value = "105";
    workSheet["B3"].Value = "285";
    workSheet["B4"].Value = "301";

    workSheet["C2"].Value = "Adam";
    workSheet["C3"].Value = "Ellen";
    workSheet["C4"].Value = "Tom";

    // Convert the WorkBook to a byte array Stream for download
    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}
Public Function OnPostExport() As FileResult
	' Create a new WorkBook with XLSX format
	Dim workBook As New WorkBook(IronXL.ExcelFileFormat.XLSX)
	' Create a new WorkSheet named "data"
	Dim workSheet As WorkSheet = workBook.CreateWorkSheet("data")

	' Add headers to the new worksheet
	workSheet("A1").Value = "Product EN"
	workSheet("B1").Value = "SKU"
	workSheet("C1").Value = "Customer"

	' Make header text bold
	workSheet("A1:C1").Style.Font.Bold = True

	' Add dummy data to the worksheet
	workSheet("A2").Value = "Iron Rods"
	workSheet("A3").Value = "Mobile Phones"
	workSheet("A4").Value = "Chargers"

	workSheet("B2").Value = "105"
	workSheet("B3").Value = "285"
	workSheet("B4").Value = "301"

	workSheet("C2").Value = "Adam"
	workSheet("C3").Value = "Ellen"
	workSheet("C4").Value = "Tom"

	' Convert the WorkBook to a byte array Stream for download
	Return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx")
End Function
$vbLabelText   $csharpLabel

In this code, a new Excel WorkBook is created and contains one WorkSheet. Das Blatt wird mit Dummy-Daten gefüllt und die generierte Datei wird an den Server zurückgesendet mit:

  • Das WorkBook wird in einen Stream konvertiert, um als Datei heruntergeladen zu werden.
  • Der MIME-Typ wird gesetzt.
  • Ein Name für den Dateidownload wird angegeben.

Erstellen Sie einen Button, um die Excel-Datei herunterzuladen

Ersetzen Sie den vorhandenen Code in "Index.cshtml" durch den folgenden:

@page
@model IndexModel
@{
    ViewData["Title"] = "Home page";
}

<div class="text-center">
    <h1 class="display-4">IronXL Generate Excel File</h1>
    <p class="m-5">IronXL is an Excel Library for C# that allows developers to read and edit Excel data from XLS and XLSX documents without using Microsoft.Office.Interop.Excel</p>
    <form method="post" asp-page-handler="Export">
        <button class="btn btn-success p-3">Generate Excel File!</button>
    </form>
</div>
@page
@model IndexModel
@{
    ViewData["Title"] = "Home page";
}

<div class="text-center">
    <h1 class="display-4">IronXL Generate Excel File</h1>
    <p class="m-5">IronXL is an Excel Library for C# that allows developers to read and edit Excel data from XLS and XLSX documents without using Microsoft.Office.Interop.Excel</p>
    <form method="post" asp-page-handler="Export">
        <button class="btn btn-success p-3">Generate Excel File!</button>
    </form>
</div>
HTML

Dieses HTML erstellt ein Formular mit asp-page-handler auf "Export" gesetzt, wodurch die Anwendung die Excel-Datei auf die lokale Maschine exportieren kann, wenn der Benutzer auf den "Generiere Excel-Datei!"-Knopf klickt, was einen Download im Browser auslöst.

Projekt ausführen

Führen Sie das Projekt aus, und Sie sehen einen Bildschirm im Browser. Klicken Sie auf den grünen Knopf, um die Excel-Datei herunterzuladen.

Wie man eine Excel-Datei auf Razor Pages generiert, Abbildung 1: IronXL Generiere Excel-Blätter IronXL Generiere Excel-Blätter

Nach dem Klicken auf "Generiere Excel-Datei!" wird die Datei heruntergeladen.

Wie man eine Excel-Datei auf Razor Pages generiert, Abbildung 2: IronXL Heruntergeladene Datei IronXL Heruntergeladene Datei

Öffnen Sie die generierte Excel-Datei

Der Inhalt der generierten Excel-Datei entspricht der Ausgabe des Codes mit perfekter Formatierung. Der Snapshot der generierten Excel-Datei wird unten angezeigt.

Wie man eine Excel-Datei auf Razor Pages generiert, Abbildung 3: IronXL Generierte Datei IronXL Generierte Datei

IronXL besser als Konkurrenten

IronXL ist ein überlegenes Werkzeug für die Arbeit mit sowohl XLS- als auch XLSX-Formaten ohne Einschränkungen wie NPOI, das langsamer ist, weil es Java-basiert ist, während IronXL C# ist. In ASP.NET Core-Anwendungen, die große/mehrere Tabellenkalkulationen generieren, entscheiden Sie sich für IronXL anstelle von POI.

IronXL ermöglicht das Erstellen und Bearbeiten von Excel-Dateien ohne Microsoft Office. Anders als Microsoft Interop benötigt IronXL nicht den Aufruf der ActiveX-Komponenten von Microsoft Excel für Excel-Operationen oder Exporte. Es ermöglicht auch den Export von CSV-Dateien in das Excel-Format.

IronXL also provides extensive features for interacting with Excel files, including converting between popular formats, inserting math functions, adding charts, and inserting images.

Abschluss

Dieser Artikel zeigt die Verwendung von IronXL zur Erstellung einer Excel-Datei in Razor Pages ohne dass Microsoft Excel ActiveX benötigt wird und erleichtert den Dateidownload.

Erkunden Sie weitere Tutorials zum Erstellen von Excel-Dateien.

IronXL ist kostenlos für nicht-kommerzielle Entwicklung. Eine kostenlose Testversion ist für Produktionstests verfügbar. Sehen Sie sich die Preise und Lizenzdetails an.

Häufig gestellte Fragen

Wie kann ich eine Excel-Datei in Razor-Seiten ohne Interop generieren?

Sie können eine Excel-Datei in Razor-Seiten ohne Interop generieren, indem Sie die IronXL-Bibliothek nutzen. Diese Bibliothek ermöglicht es, Excel-Dateien direkt in C# zu erstellen und zu bearbeiten, ohne dass Microsoft Office erforderlich ist, indem ein WorkBook erstellt und Daten zu einem WorkSheet hinzugefügt werden.

Welche Schritte sind zur Installation von IronXL für ein Razor-Seiten-Projekt erforderlich?

Um IronXL für ein Razor-Seiten-Projekt zu installieren, können Sie die NuGet-Paket-Manager-Konsole in Visual Studio verwenden. Führen Sie den Befehl Install-Package IronXL.Excel aus, um die Bibliothek zu Ihrem Projekt hinzuzufügen.

Kann ich IronXL verwenden, um Daten aus einer Razor-Seiten-Anwendung zu exportieren?

Ja, IronXL kann verwendet werden, um Daten aus einer Razor-Seiten-Anwendung zu exportieren. Sie können Ihre Daten in das Excel-Format umwandeln und dann Razor-Seiten verwenden, um diese Daten als herunterladbare Datei an den Client zu streamen.

Welche Vorteile bietet die Verwendung von IronXL gegenüber Microsoft Interop zur Generierung von Excel-Dateien?

IronXL bietet mehrere Vorteile gegenüber Microsoft Interop, einschließlich schnellerer Leistung, keiner Notwendigkeit für die Installation von Microsoft Office und der Fähigkeit, große Datensätze effizient durch Parallelverarbeitung zu handhaben.

Ist es möglich, große Excel-Datensätze in Razor-Seiten mit IronXL zu bearbeiten?

Ja, IronXL kann große Excel-Datensätze effizient bearbeiten. Es unterstützt Parallelverarbeitung, was die Leistung und Geschwindigkeit bei der Arbeit mit umfangreichen Daten verbessern kann.

Unterstützt IronXL verschiedene Excel-Dateiformate?

IronXL unterstützt sowohl XLS- als auch XLSX-Dateiformate und ermöglicht umfassende Excel-Dateibearbeitung, einschließlich Import, Export und Datenformatierung.

Gibt es kostenlose Optionen zur Verwendung von IronXL in der Entwicklung?

IronXL ist für die nicht-kommerzielle Entwicklung kostenlos verfügbar. Ein kostenloser Test wird für Produktionstests bereitgestellt, mit verschiedenen Preismodellen für kommerzielle Nutzung.

Wie kann ich einen Excel-Dateidownload in Razor-Seiten mit IronXL auslösen?

Um einen Excel-Dateidownload in Razor-Seiten mit IronXL auszulösen, erstellen Sie ein WorkBook, füllen es mit Daten und konvertieren es dann in ein Byte-Array. Verwenden Sie die Razor-Seiten-File-Methode, um das Byte-Array als herunterladbare Datei an den Benutzer zu streamen.

Was macht IronXL gegenüber anderen Bibliotheken wie NPOI vorzuziehen?

IronXL wird häufig gegenüber Bibliotheken wie NPOI bevorzugt, da es eine native C#-Implementierung bietet, die schnellere Leistung, einfache Bedienung und keine Abhängigkeit von Java-Komponenten ermöglicht, was es ideal für ASP.NET Core-Anwendungen macht.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen