Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
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.
Byte-Array
in C#InvokeAsync
Convert.ToBase64String
im Blazor-ProjektIronXL 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
Folgen wir den Schritten, um eine Excel-Datei aus einer Blazor-Webanwendung zu erstellen.
Für den Export von Excel-Dateien in einer Blazor Server Anwendung gibt es einige Voraussetzungen:
Visual Studio (die neueste Version)
.NET-Framework 6 oder 7
Blazor Server Anwendung in Visual Studio ausführen
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.
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.
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);
}
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>
Erstellen Sie eine Klasse mit dem Namen "ExcelExport.cs" unter dem Ordner Data.
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
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".
Erstellen Sie eine Razor-Komponente mit dem Namen "ExportExcel.razor" unter dem Ordner Pages.
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
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>
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".
ExportExcel.razor
Die Anwendung exportiert die Daten in ein Excel-Tabellenblatt und lädt die XLSX-Datei auf Ihren Computer herunter.
Download Excel
Dies ist die Vorschau der generierten Excel-Datei.
Erstellte Excel
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.
9 .NET API-Produkte für Ihre Bürodokumente