Wie man eine Excel-Datei in Blazor mit C# liest

Blazor Read Excel File in C# Using IronXL (Example Tutorial)

This article was translated from English: Does it need improvement?
Translated
View the article in English

Einführung

Blazor ist ein Open-Source .NET-Web-Framework, das von Microsoft erstellt wurde. Eine Blazor-Anwendung funktioniert, indem der C#-Code in JavaScript und HTML übersetzt wird, die mit Browsern kompatibel sind. In diesem Tutorial teile ich Wissen über die beste und einfachste Methode zum Lesen von Excel-Dokumenten/-Arbeitsblättern in einer serverseitigen Blazor-Anwendung mit der IronXL C#-Bibliothek.

Demonstration von IronXL Excel in Blazor anzeigen
class="hsg-featured-snippet">

Wie man eine Excel-Datei in Blazor liest

  1. Installieren Sie die C#-Bibliothek, um Excel-Dateien in Blazor zu lesen
  2. Erstellen Sie einen Datei Upload-Button in Ihrer Blazor-Anwendung
  3. Verwenden Sie die C#-Bibliothek, um die Excel-Datei von der Festplatte zu lesen
  4. Konfigurieren Sie die Blazor-App, um die gelesenen Daten in einer Tabelle im Fenster anzuzeigen

Erste Schritte mit IronXL

Nutzen Sie IronXL heute kostenlos in Ihrem Projekt.

Erster Schritt:
green arrow pointer


Schritt 1 - Erstellen Sie ein Blazor-Projekt in Visual Studio

Ich habe eine XLSX-Datei, die die folgenden Daten enthält, die ich in die Blazor-Server-App lesen und öffnen werde:

Eingabedaten XLSX Excel-Blatt Ergebnis im Blazor-Server-Browser
Vorname Nachname ID
John Applesmith 1
Richard Smith 2
Sherry Robins 3
Browser View related to Schritt 1 - Erstellen Sie ein Blazor-Projekt in Visual Studio

Beginnen Sie mit der Erstellung eines Blazor-Projekts über die Visual Studio IDE:

New Project related to Schritt 1 - Erstellen Sie ein Blazor-Projekt in Visual Studio

Wählen Sie den Blazor Server App Projekttyp:

Choose Blazor Project Type related to Schritt 1 - Erstellen Sie ein Blazor-Projekt in Visual Studio

Führen Sie die Anwendung mit der Taste F5 aus, ohne die Lösung zu ändern. Navigieren Sie zum Fetch data Tab der Anwendung so:

First Run related to Schritt 1 - Erstellen Sie ein Blazor-Projekt in Visual Studio

Unser Ziel wird es sein, unsere Excel-Datei in die Blazor-App mit einem Upload-Button zu laden und dann auf dieser Seite anzuzeigen.

Schritt 2 - Fügen Sie IronXL zu Ihrer Lösung hinzu

IronXL: .NET Excel Bibliothek (Installationsanleitung):

IronXL ist eine .NET-Bibliothek, die es Ihnen ermöglicht, die Tabelle in Microsoft Excel wie ein Objekt zu behandeln, was es dem Entwickler ermöglicht, die volle Leistungsfähigkeit von C# und dem .NET-Framework zu nutzen, um Datenströme zu manipulieren. Als Entwickler wollen wir eine schöne Möglichkeit, mit der wir die Informationen jeder Zeile und Spalte aus Excel-Dokumenten/-Arbeitsblättern in unsere Anwendungen oder Datenbanken holen können.

Mit IronXL ist es möglich, alle Arten von Informationen aus einem Arbeitsblatt zu erhalten, wie z.B. Zellwerte, Zellinhalte, Bilder, Referenzen und Formatierungen. IronXL ist in vielen Aspekten besser als NPOI. IronXL bietet mehr Funktionen und kann das Schreiben komplexer Logik erleichtern. Es hat auch bevorzugtere Lizenzen und das Support-Team ist kompetenter.

IronXL unterstützt alle die neuesten Versionen von .NET (8, 7 und 6) und .NET Core Framework 4.6.2+.

Fügen Sie IronXL zu Ihrer Lösung mit einer der unten aufgeführten Methoden hinzu und erstellen Sie dann die Lösung.

Option 2A - Verwenden Sie den NuGet-Paket-Manager

Install-Package IronXL.Excel

Option 2B - Fügen Sie PackageReference im csproj hinzu

Sie können IronXL direkt zu Ihrem Projekt hinzufügen, indem Sie die folgende Zeile zu einem beliebigen <ItemGroup> im .csproj der Lösung hinzufügen:

<PackageReference Include="IronXL.Excel" Version="*" />
<PackageReference Include="IronXL.Excel" Version="*" />
XML

Wie hier in Visual Studio gezeigt:

Add Ironxl Csproj related to Option 2B - Fügen Sie PackageReference im csproj hinzu

Schritt 3 - Programmierung des Datei-Uploads und der Anzeige

Gehen Sie im Visual Studio Solution View zum Pages/ Ordner und finden Sie die FetchData.razor Datei. Sie können jede andere Razor-Datei verwenden, aber wir werden diese verwenden, da sie mit der Blazor-Server-App-Vorlage geliefert wird.

Ersetzen Sie den Dateiinhalte mit folgendem Code:

@using IronXL;
@using System.Data;

@page "/fetchdata"

<PageTitle>Excel File Viewer</PageTitle>

<h1>Open Excel File to View</h1>

<InputFile OnChange="@OpenExcelFileFromDisk" />

<table>
    <thead>
        <tr>
            @foreach (DataColumn column in displayDataTable.Columns)
            {
                <th>
                    @column.ColumnName
                </th>
            }
        </tr>
    </thead>
    <tbody>
        @foreach (DataRow row in displayDataTable.Rows)
        {
            <tr>
                @foreach (DataColumn column in displayDataTable.Columns)
                {
                    <td>
                        @row[column.ColumnName].ToString()
                    </td>
                }
            </tr>
        }
    </tbody>
</table>

@code {
    // Create a DataTable instance
    private DataTable displayDataTable = new DataTable();

    // This method is triggered when a file is uploaded
    async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
    {
        IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";

        // Load the uploaded file into a MemoryStream
        MemoryStream ms = new MemoryStream();

        await e.File.OpenReadStream().CopyToAsync(ms);
        ms.Position = 0;

        // Create an IronXL workbook from the MemoryStream
        WorkBook loadedWorkBook = WorkBook.FromStream(ms);
        WorkSheet loadedWorkSheet = loadedWorkBook.DefaultWorkSheet; // Or use .GetWorkSheet()

        // Add header Columns to the DataTable
        RangeRow headerRow = loadedWorkSheet.GetRow(0);
        for (int col = 0; col < loadedWorkSheet.ColumnCount; col++)
        {
            displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString());
        }

        // Populate the DataTable with data from the Excel sheet
        for (int row = 1; row < loadedWorkSheet.RowCount; row++)
        {
            IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().Select(c => c.ToString());
            displayDataTable.Rows.Add(excelRow.ToArray());
        }
    }
}
@using IronXL;
@using System.Data;

@page "/fetchdata"

<PageTitle>Excel File Viewer</PageTitle>

<h1>Open Excel File to View</h1>

<InputFile OnChange="@OpenExcelFileFromDisk" />

<table>
    <thead>
        <tr>
            @foreach (DataColumn column in displayDataTable.Columns)
            {
                <th>
                    @column.ColumnName
                </th>
            }
        </tr>
    </thead>
    <tbody>
        @foreach (DataRow row in displayDataTable.Rows)
        {
            <tr>
                @foreach (DataColumn column in displayDataTable.Columns)
                {
                    <td>
                        @row[column.ColumnName].ToString()
                    </td>
                }
            </tr>
        }
    </tbody>
</table>

@code {
    // Create a DataTable instance
    private DataTable displayDataTable = new DataTable();

    // This method is triggered when a file is uploaded
    async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
    {
        IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";

        // Load the uploaded file into a MemoryStream
        MemoryStream ms = new MemoryStream();

        await e.File.OpenReadStream().CopyToAsync(ms);
        ms.Position = 0;

        // Create an IronXL workbook from the MemoryStream
        WorkBook loadedWorkBook = WorkBook.FromStream(ms);
        WorkSheet loadedWorkSheet = loadedWorkBook.DefaultWorkSheet; // Or use .GetWorkSheet()

        // Add header Columns to the DataTable
        RangeRow headerRow = loadedWorkSheet.GetRow(0);
        for (int col = 0; col < loadedWorkSheet.ColumnCount; col++)
        {
            displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString());
        }

        // Populate the DataTable with data from the Excel sheet
        for (int row = 1; row < loadedWorkSheet.RowCount; row++)
        {
            IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().Select(c => c.ToString());
            displayDataTable.Rows.Add(excelRow.ToArray());
        }
    }
}
Private IronXL As [using]
Private System As [using]

'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'@page "/fetchdata" (Of PageTitle) Excel File Viewer</PageTitle> (Of h1) Open Excel File @to View</h1> <InputFile OnChange="@OpenExcelFileFromDisk" /> (Of table) (Of thead) (Of tr) @foreach(DataColumn column in displayDataTable.Columns)
'			{
'				<th> @column.ColumnName </th>
'			}
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'		</tr> </thead> (Of tbody) @foreach(DataRow row in displayDataTable.Rows)
'		{
'			<tr> @foreach(DataColumn column in displayDataTable.Columns)
'				{
'					<td> @row[column.ColumnName].ToString() </td>
'				}
'			</tr>
'		}
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	</tbody> </table> @code
'	{
'	' Create a DataTable instance
'	private DataTable displayDataTable = New DataTable();
'
'	' This method is triggered when a file is uploaded
'	async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
'	{
'		IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";
'
'		' Load the uploaded file into a MemoryStream
'		MemoryStream ms = New MemoryStream();
'
'		await e.File.OpenReadStream().CopyToAsync(ms);
'		ms.Position = 0;
'
'		' Create an IronXL workbook from the MemoryStream
'		WorkBook loadedWorkBook = WorkBook.FromStream(ms);
'		WorkSheet loadedWorkSheet = loadedWorkBook.DefaultWorkSheet; ' Or use .GetWorkSheet()
'
'		' Add header Columns to the DataTable
'		RangeRow headerRow = loadedWorkSheet.GetRow(0);
'		for (int col = 0; col < loadedWorkSheet.ColumnCount; col++)
'		{
'			displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString());
'		}
'
'		' Populate the DataTable with data from the Excel sheet
'		for (int row = 1; row < loadedWorkSheet.RowCount; row++)
'		{
'			IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().@Select(c => c.ToString());
'			displayDataTable.Rows.Add(excelRow.ToArray());
'		}
'	}
'}
$vbLabelText   $csharpLabel

Zusammenfassung

Die <InputFile> Komponente ermöglicht es Ihnen, eine Datei auf dieser Webseite hochzuladen. Wir haben das aufgerufene Ereignis so konfiguriert, dass es OpenExcelFileFromDisk aufruft, das die asynchrone Methode im @code Block unten ist. Das HTML wird Ihr Excel-Blatt als Tabelle im Tab rendern.

IronXL.Excel ist eine eigenständige .NET-Softwarebibliothek zum Lesen einer Vielzahl von Tabellenformaten. Es erfordert nicht, dass Microsoft Excel installiert ist, und ist nicht von Interop abhängig.


class="tutorial-segment-title">Weiterführende Literatur

class="tutorial-section">
class="row">
class="col-sm-4">
class="tutorial-image"> Documentation related to class=Weiterführende Literatur" class="img-responsive add-shadow img-responsive img-popup" src="/img/svgs/documentation.svg" loading="lazy">
class="col-sm-8">

Sehen Sie sich die API-Referenz an

Erforschen Sie die API-Referenz für IronXL und erfassen Sie alle Details zu allen Funktionen von IronXL, Namespaces, Klassen, Methoden, Feldern und Enums.

Sehen Sie sich die API-Referenz an

Laden Sie das Softwareprodukt herunter.

Häufig gestellte Fragen

Wie kann ich Excel-Dateien in einer Blazor-Server-Anwendung lesen?

Um Excel-Dateien in einer Blazor-Server-Anwendung zu lesen, können Sie die IronXL C#-Bibliothek verwenden. Sie ermöglicht es Ihnen, sich einfach mit Ihrem Blazor-Projekt zu integrieren, indem Sie den NuGet-Paketmanager verwenden, um die Bibliothek zu installieren und dann Code zu implementieren, um Excel-Daten zu lesen und anzuzeigen.

Welche Schritte sind erforderlich, um ein Blazor-Projekt zum Lesen von Excel-Dateien einzurichten?

Zuerst installieren Sie IronXL über den NuGet-Paketmanager. Danach erstellen Sie eine Datei-Upload-Taste in Ihrer Blazor-Anwendung. Verwenden Sie IronXL, um die hochgeladene Excel-Datei zu lesen und konfigurieren Sie die App, um die Daten mit Razor-Komponenten in einer Tabelle anzuzeigen.

Ist es möglich, Excel-Dateien in einer Blazor-Anwendung zu lesen, ohne Excel installiert zu haben?

Ja, mit IronXL können Sie Excel-Dateien in einer Blazor-Anwendung lesen und manipulieren, ohne dass Microsoft Excel auf Ihrem System installiert sein muss.

Wie kann ich Excel-Daten in einer Blazor-Anwendung anzeigen?

Nachdem Sie die Excel-Datei mit IronXL gelesen haben, können Sie in Ihrer Blazor-Anwendung Razor-Komponenten verwenden, um die Daten in einem Tabellenformat anzuzeigen, was die Benutzeroberfläche verbessert.

Welche Vorteile bietet IronXL gegenüber anderen Excel-Bibliotheken?

IronXL bietet umfangreiche Funktionen, eine einfache Handhabung komplexer Logik, überlegene Lizenzbedingungen und einen engagierten Support, was es zur bevorzugten Wahl gegenüber Alternativen wie NPOI macht.

Welche .NET-Versionen werden von IronXL für die Excel-Manipulation unterstützt?

IronXL unterstützt alle neuesten Versionen von .NET, einschließlich 8, 7 und 6, sowie .NET Core Framework 4.6.2+, was eine breite Kompatibilität mit modernen Anwendungen gewährleistet.

Wie integriere ich eine Excel-Bibliothek in mein Blazor-Projekt?

Sie können eine Excel-Bibliothek wie IronXL in Ihr Blazor-Projekt integrieren, indem Sie den NuGet-Paketmanager mit dem Befehl dotnet add package IronXL.Excel verwenden oder indem Sie ein PackageReference in der .csproj-Datei hinzufügen.

Welche Schritte zur Fehlerbehebung kann ich unternehmen, wenn meine Blazor-App eine Excel-Datei nicht lesen kann?

Stellen Sie sicher, dass IronXL korrekt über NuGet installiert ist und dass Ihre Blazor-App die erforderlichen Berechtigungen zum Lesen von Dateien von der Festplatte hat. Überprüfen Sie, ob der Pfad zur Excel-Datei korrekt ist und dass das Dateiformat von IronXL unterstützt wird.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 1,686,155 | Version: 2025.11 gerade veröffentlicht