using IronXL;
using System;
using System.Linq;
// Supported for XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Select a cell and return the converted value
int cellValue = workSheet["A2"].IntValue;
// Read from ranges of cells elegantly.
foreach (var cell in workSheet["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Calculate aggregate values such as Min, Max and Sum
decimal sum = workSheet["A2:A10"].Sum();
// Linq compatible
decimal max = workSheet["A2:A10"].Max(c => c.DecimalValue);
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.
Verwenden Sie intuitive APIs zum Erstellen und Ausfüllen von Excel-Arbeitsmappen
Konvertieren Sie die erstellte Arbeitsmappe in Byte-Array in C#
Rufen Sie die Ausführung der Klasse mit InvokeAsync
Exportieren Sie die Excel-Datei mit Convert.ToBase64String im Blazor-Projekt
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. IronXLunterstü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 diesemC# 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
$vbLabelText $csharpLabel
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:
Visual Studio(die neueste Version)
.NET-Framework 6 oder 7
Blazor Server Anwendung in Visual Studio ausführen
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.
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);
}
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.
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
$vbLabelText $csharpLabel
In dem obigen Beispiel erstellt die IronXL-Bibliothek eine Excelarbeitsbuch im XLSX-Format. IronXL unterstützt auch das XLS-Format. Ein WorkBook ist notwendig, um einearbeitsblatt 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.
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
$vbLabelText $csharpLabel
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.
Nav-Link hinzufügen
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.
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
Erstellte Excel-Tabelle
Dies ist die Vorschau der generierten 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 unterwie man Excel-Dateien exportiertsteuern Sie die Darstellung der Zellen in einer Excel-Arbeitsmappe mitgitternetzlinienkartenverwaltung undtextausrichtung, Schriftgröße, Farbe.
Jordi beherrscht vor allem Python, C# und C++. Wenn er seine Fähigkeiten bei Iron Software nicht einsetzt, programmiert er Spiele. Durch seine Mitverantwortung für Produkttests, Produktentwicklung und Forschung trägt Jordi wesentlich zur kontinuierlichen Produktverbesserung bei. Die vielseitigen Erfahrungen, die er sammelt, bieten ihm immer wieder neue Herausforderungen, und er sagt, dass dies einer seiner Lieblingsaspekte bei Iron Software ist. Jordi wuchs in Miami, Florida, auf und studierte Informatik und Statistik an der University of Florida.