IRONXL VERWENDEN

Wie man in Blazor mit IronXL Daten nach Excel exportiert

Aktualisiert 29. Januar 2024
Teilen Sie:

In diesem Tutorial wird erklärt, wie man in einer Blazor-Webanwendung mit ansprechender Präsentation Daten in Excel-Dateien exportiert, indem man die IronXL-Bibliothek zum Generieren und Herunterladen von Daten in Excel-Dateien verwendet.

IronXL: C# Excel-Bibliothek

IronXL ist eine C#-Excel-Bibliothek, die entwickelt wurde, um die zeitaufwändigsten Aufgaben in Excel zu erledigen, nämlich diejenigen, die sich häufig wiederholen. IronXL ist leistungsstark genug, um selbst die komplexesten Probleme in Excel zu lösen. Es kann mit riesigen Datensätzen und großen Zellen mühelos umgehen, was für viele Entwickler, die Excel für ihre Arbeit verwenden, eine schwierige Aufgabe war. Diese Bibliothek hilft ihnen, Anwendungen zu entwickeln, die Excel-Daten lesen und direkt schreiben können, ohne dass eine Schnittstelle zu Microsoft Office-Dateien oder -Bibliotheken unter Windows erforderlich ist.

Die IronXL-Bibliothek kann zur Erstellung einer Vielzahl von Tabellenkalkulationen wie Rechnungen, Spesenabrechnungen oder Verkaufsberichten verwendet werden. Darüber hinaus kann es durch die Automatisierung von Aufgaben wie der Zusammenführung komplexer Datensätze zur Rationalisierung von Datenanalyse- oder Berichtsprozessen an Ihrem Arbeitsplatz beitragen. IronXL unterstützt mehrere Dateiformate.

Die Hauptfunktion von IronXL ermöglicht es Entwicklern, Excel-Dateien zu erstellen, zu bearbeiten, zu manipulieren und zu lesen, ohne Microsoft Excel zu benötigen. Das bedeutet, dass Sie Microsoft Excel nicht auf Ihrem System installieren müssen. Diese Funktionalität bietet Entwicklern verschiedene Möglichkeiten, um die Integration von Excel-Daten in Anwendungen zu vereinfachen. So kann ein Entwickler beispielsweise automatisch Berichte aus einer Datenbank erstellen und sie zur einfachen Verteilung in Excel exportieren. Eine ausführliche Anleitung zum Lesen von Excel-Dateien in C# finden Sie in diesem C# Excel-Datei lesen tutorium.

using IronXL;

class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Key;

        // Load an existing Excel file
        WorkBook workbook = WorkBook.Load("ExistingData.xlsx");
        WorkSheet sheet = workbook.DefaultWorkSheet;

        // For example, changing the sales value in cell C2
        if (sheet["C2"].IsEmpty == false)
        {
            double currentSales = sheet["C2"].DoubleValue;
            // Increase sales by 10%
            sheet["C2"].Value = currentSales * 1.10;
        }

        // Save the changes back to the same file or a new file
        workbook.SaveAs("UpdatedData.xlsx");
    }
}
using IronXL;

class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Key;

        // Load an existing Excel file
        WorkBook workbook = WorkBook.Load("ExistingData.xlsx");
        WorkSheet sheet = workbook.DefaultWorkSheet;

        // For example, changing the sales value in cell C2
        if (sheet["C2"].IsEmpty == false)
        {
            double currentSales = sheet["C2"].DoubleValue;
            // Increase sales by 10%
            sheet["C2"].Value = currentSales * 1.10;
        }

        // Save the changes back to the same file or a new file
        workbook.SaveAs("UpdatedData.xlsx");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Daten aus Blazor-Projekt nach Excel exportieren

Folgen wir den Schritten, um eine Excel-Datei aus einer Blazor-Webanwendung zu erstellen.

Voraussetzungen

Für den Export von Excel-Dateien in einer Blazor Server Anwendung gibt es einige Voraussetzungen:

  1. Visual Studio (die neueste Version)

  2. .NET-Framework 6 oder 7

  3. Blazor Server Anwendung in Visual Studio ausführen

  4. Stabile Internetverbindung zur Installation der IronXL-Bibliothek

IronXL-Bibliothek installieren

Nun ist es an der Zeit, die IronXL-Bibliothek über die NuGet Package Manager Console zu installieren. Öffnen Sie die NuGet-Paketmanager-Konsole und geben Sie den folgenden Befehl ein:

Install-Package IronXL.Excel

Mit diesem Befehl wird die neueste Version von IronXL in der Anwendung installiert.

Code zum Herunterladen einer exportierten Excel-Datei

Nach der Installation von IronXL erstellen Sie im Solution Explorer einen Ordner mit dem Namen "js" unter dem Abschnitt "wwwroot". Erstellen Sie im Ordner "js" eine JavaScript-Datei mit dem Namen "SaveAsFile.js", wie im folgenden Screenshot gezeigt.

Wie man in Blazor mit IronXL Daten nach Excel exportiert, Abbildung 1: js-Ordner

js-Ordner

Fügen Sie nun den folgenden Code in die Datei "SaveAsFile.js" ein. Diese Funktion gibt die generierten Dateien als Stream an die Benutzer zurück.

function saveAsFile(filename, byteBase64) {
    var link = document.createElement('a');
    link.download = filename;
    link.href = "data:application/octet-stream;base64," + byteBase64;
    document.body.appendChild(link); // Needed for Firefox link
    link.click();
    document.body.removeChild(link);
}
JAVASCRIPT

Als nächstes fügen Sie den relativen Pfad zur Datei "SaveAsFile.js" in die Datei "_Host.cshtml" ein. Dadurch kann die Anwendung die zuvor definierte JavaScript-Funktion aufrufen.

 <script src="~/js/SaveAsFile.js"></script>
 <script src="~/js/SaveAsFile.js"></script>
HTML

Code zum Exportieren von Excel-Dateien

Erstellen Sie eine Klasse mit dem Namen "ExcelExport.cs" unter dem Ordner Data.

Wie man in Blazor mit IronXL Daten nach Excel exportiert, Abbildung 2: ExcelExport.cs

ExcelExport.cs

Schreiben Sie den folgenden Code für den Export von Daten in die Datei "ExcelExport.cs".

using IronXL;
using Microsoft.JSInterop;
using System;

namespace Export_Excel_Blazor.Data
{
    public class ExcelExport
    {
        public void ExcelGenerate(IJSRuntime iJSRuntime)
        {
            byte [] fileContents;
            WorkBook xlsxWorkbook = WorkBook.Create(IronXL.ExcelFileFormat.XLSX);
            xlsxWorkbook.Metadata.Author = "IronXL";

            //Add a blank WorkSheet
            WorkSheet xlsxSheet = xlsxWorkbook.CreateWorkSheet("new_sheet");

            //Add data and styles to the new worksheet

            xlsxSheet ["A1"].Value = "Product EN";
            xlsxSheet ["B1"].Value = "SKU";
            xlsxSheet ["C1"].Value = "Customer";

            xlsxSheet ["A1:C1"].Style.Font.Bold = true;

            xlsxSheet ["A2"].Value = "Iron Rods";
            xlsxSheet ["A3"].Value = "Mobile Phones";
            xlsxSheet ["A4"].Value = "Chargers";

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

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

            fileContents = xlsxWorkbook.ToByteArray();

            iJSRuntime.InvokeAsync<ExcelExport>(
                "saveAsFile",
                "GeneratedExcel.xlsx",
                Convert.ToBase64String(fileContents)
            );
        }
    }
}
using IronXL;
using Microsoft.JSInterop;
using System;

namespace Export_Excel_Blazor.Data
{
    public class ExcelExport
    {
        public void ExcelGenerate(IJSRuntime iJSRuntime)
        {
            byte [] fileContents;
            WorkBook xlsxWorkbook = WorkBook.Create(IronXL.ExcelFileFormat.XLSX);
            xlsxWorkbook.Metadata.Author = "IronXL";

            //Add a blank WorkSheet
            WorkSheet xlsxSheet = xlsxWorkbook.CreateWorkSheet("new_sheet");

            //Add data and styles to the new worksheet

            xlsxSheet ["A1"].Value = "Product EN";
            xlsxSheet ["B1"].Value = "SKU";
            xlsxSheet ["C1"].Value = "Customer";

            xlsxSheet ["A1:C1"].Style.Font.Bold = true;

            xlsxSheet ["A2"].Value = "Iron Rods";
            xlsxSheet ["A3"].Value = "Mobile Phones";
            xlsxSheet ["A4"].Value = "Chargers";

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

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

            fileContents = xlsxWorkbook.ToByteArray();

            iJSRuntime.InvokeAsync<ExcelExport>(
                "saveAsFile",
                "GeneratedExcel.xlsx",
                Convert.ToBase64String(fileContents)
            );
        }
    }
}
Imports IronXL
Imports Microsoft.JSInterop
Imports System

Namespace Export_Excel_Blazor.Data
	Public Class ExcelExport
		Public Sub ExcelGenerate(ByVal iJSRuntime As IJSRuntime)
			Dim fileContents() As Byte
			Dim xlsxWorkbook As WorkBook = WorkBook.Create(IronXL.ExcelFileFormat.XLSX)
			xlsxWorkbook.Metadata.Author = "IronXL"

			'Add a blank WorkSheet
			Dim xlsxSheet As WorkSheet = xlsxWorkbook.CreateWorkSheet("new_sheet")

			'Add data and styles to the new worksheet

			xlsxSheet ("A1").Value = "Product EN"
			xlsxSheet ("B1").Value = "SKU"
			xlsxSheet ("C1").Value = "Customer"

			xlsxSheet ("A1:C1").Style.Font.Bold = True

			xlsxSheet ("A2").Value = "Iron Rods"
			xlsxSheet ("A3").Value = "Mobile Phones"
			xlsxSheet ("A4").Value = "Chargers"

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

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

			fileContents = xlsxWorkbook.ToByteArray()

			iJSRuntime.InvokeAsync(Of ExcelExport)("saveAsFile", "GeneratedExcel.xlsx", Convert.ToBase64String(fileContents))
		End Sub
	End Class
End Namespace
VB   C#

In dem obigen Beispiel erstellt die IronXL-Bibliothek eine Excel arbeitsbuch im XLSX-Format. IronXL unterstützt auch das XLS-Format. Ein WorkBook ist notwendig, um eine arbeitsblatt hinzugefügt. Der nächste Schritt besteht darin, dieses Blatt mit Dummy-Daten zu füllen.

Danach wird der gesamte Inhalt von "WorkBook" in ein Byte-Array umgewandelt und "IJSRuntime" wird ausgelöst, um die Datei mit den folgenden Parametern herunterzuladen: dem Namen der JavaScript-Funktion, dem Dateinamen für die exportierte Datei und dem Byte-Array von "WorkBook".

Razor-Komponente erstellen

Erstellen Sie eine Razor-Komponente mit dem Namen "ExportExcel.razor" unter dem Ordner Pages.

Wie man in Blazor mit IronXL Daten nach Excel exportiert, Abbildung 3:

ExcelExport.cs

Ersetzen Sie dann den Quellcode von "ExportExcel.razor" durch den unten angegebenen.

@page "/export"
@using Export_Excel_Blazor.Data
@inject IJSRuntime JS

<h1>IronXL Export Excel File</h1>

<p>Intuitive C# & VB.NET Excel API & No need to install MS Office or Excel Interop</p>

<button class="btn btn-primary" @onclick="ExcelGeneration">Create Excel File</button>

@code {

    private void ExcelGeneration()
    {
        ExcelExport excelExport = new ExcelExport();
        excelExport.ExcelGenerate(JS);
    }
}
@page "/export"
@using Export_Excel_Blazor.Data
@inject IJSRuntime JS

<h1>IronXL Export Excel File</h1>

<p>Intuitive C# & VB.NET Excel API & No need to install MS Office or Excel Interop</p>

<button class="btn btn-primary" @onclick="ExcelGeneration">Create Excel File</button>

@code {

    private void ExcelGeneration()
    {
        ExcelExport excelExport = new ExcelExport();
        excelExport.ExcelGenerate(JS);
    }
}
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: @page "/export" using Export_Excel_Blazor.Data inject IJSRuntime JS <h1> IronXL Export Excel File</h1> <p> Intuitive C# & VB.NET Excel API & No need to install MS Office or Excel Interop</p> <button class="btn btn-primary" onclick="ExcelGeneration"> Create Excel File</button> @code
"btn btn-primary" onclick="ExcelGeneration"> Create Excel File</button> code
Private Friend page "/export" [using] Export_Excel_Blazor.Data inject IJSRuntime JS (Of h1) IronXL Export Excel File</h1> (Of p) Intuitive C# & VB.NET Excel API And No need [to] install MS Office [or] Excel Interop</p> <button Class="btn btn-primary" onclick

	Private Sub ExcelGeneration()
		Dim excelExport As New ExcelExport()
		excelExport.ExcelGenerate(JS)
	End Sub
End Class
VB   C#

Erstellen Sie im obigen HTML-Code eine Schaltfläche mit einer Eigenschaft "onclick", die auf die Funktion "ExcelGeneration" verweist. Dann wird die Funktion ExcelGeneration im Abschnitt @code mit C#-Code hinzugefügt, um die Exportfunktion zu behandeln.

Fügen Sie das folgende Codestück in die Datei "NavMenu.razor" ein. Es fügt ein Navigationsmenü hinzu, um die Seite Excel Generation zu erreichen.

<li class="nav-item px-3">
    <NavLink class="nav-link" href="export">
        <span class="oi oi-list-rich" aria-hidden="true"></span> Export Excel
    </NavLink>
</li>
<li class="nav-item px-3">
    <NavLink class="nav-link" href="export">
        <span class="oi oi-list-rich" aria-hidden="true"></span> Export Excel
    </NavLink>
</li>
HTML

Projekt ausführen

Führen Sie das Projekt schließlich aus. Im Browser sehen Sie die folgende Ausgabe. Gehen Sie zum Navigationsmenü "Excel exportieren" und klicken Sie auf die Schaltfläche "Excel-Datei erstellen".

Wie man in Blazor mit IronXL Daten nach Excel exportiert, Abbildung 4: ExportExcel.razor

ExportExcel.razor

Die Anwendung exportiert die Daten in ein Excel-Tabellenblatt und lädt die XLSX-Datei auf Ihren Computer herunter.

Datenexport nach Excel in Blazor mit IronXL, Abbildung 5: Excel herunterladen

Download Excel

Erstellte Excel-Tabelle

Dies ist die Vorschau der generierten Excel-Datei.

Datenexport nach Excel in Blazor mit IronXL, Abbildung 6: Generierte Excel-Datei

Erstellte Excel

Zusammenfassung

In diesem Artikel wurde der Prozess der Erstellung und des Exports von Excel-Dateien in der Blazor-Anwendung mit IronXL erläutert. IronXL ist ein großartiges Tool für .NET-Entwickler, die Excel-Dateien in der Software bearbeiten müssen, ohne Microsoft Office auf dem Rechner zu installieren. IronXL bietet eine viel schnellere Möglichkeit, Excel-Dateien in .NET zu erstellen.

IronXL basiert auf der Programmiersprache C# und ermöglicht eine schnelle und einfache Code-Entwicklung für die Erstellung interaktiver und reaktionsschneller Benutzeroberflächen in der weltweit beliebtesten Tabellenkalkulationsanwendung. Microsoft Interop ist eine relativ langsame Bibliothek, die eine komplexere Codierung erfordert. Microsoft Interop ist langsamer als IronXL, da es die Verwendung von COM zum Lesen und Schreiben von Daten erfordert. Weitere Artikel zum Thema IronXL finden Sie unter wie man Excel-Dateien exportiertsteuern Sie die Darstellung der Zellen in einer Excel-Arbeitsmappe mit gitternetzlinienkartenverwaltung und textausrichtung, Schriftgröße, Farbe.

< PREVIOUS
C# CSV Parser (Schritt-für-Schritt) Tutorial
NÄCHSTES >
Wie man eine Excel-Datei auf Razor Pages generiert

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 1,068,832 Lizenzen anzeigen >