Blazor Lesen von Excel-Dateien in C# mit IronXL (Beispiel-Tutorial)

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

Einführung

Blazor ist ein quelloffenes .NET-Web-Framework, das von Microsoft entwickelt wurde. Eine Blazor-Anwendung funktioniert durch Kompilieren des C#-Codes in Browser-kompatibles JavaScript und HTML. In diesem Tutorial teile ich mein Wissen über die beste und einfachste Methode zum Lesen von Excel-Dokumenten/Arbeitsblättern in einer serverseitigen Blazor-Anwendung unter Verwendung der IronXL C#-Bibliothek.

Demonstration der IronXL-Ansicht von Excel in Blazor

Schritt 1 - Erstellen eines Blazor-Projekts in Visual Studio

Ich habe eine XLSX-Datei mit den folgenden Daten, die ich einlesen und in der Blazor Server App öffnen möchte:

XLSX-Excel-Tabelle eingeben Ergebnis im Blazor Server Browser
Vornamen Nachname ID
John Applesmith 1
Richard Smith 2
Sherry Robins 3

Beginnen Sie mit der Erstellung eines Blazor-Projekts in der Visual Studio IDE:

Wählen Sie den Projekttyp Blazor Server App:

Führen Sie die Anwendung aus, ohne die Lösung zu ändern, und drücken Sie die Taste "F5". Navigieren Sie zur Registerkarte "Daten abrufen" der Anwendung wie folgt:

Unser Ziel ist es, die Excel-Datei mit einer Upload-Schaltfläche in die Blazor-App zu laden und sie dann auf dieser Seite anzuzeigen.

Schritt 2 - IronXL zu Ihrer Lösung hinzufügen

IronXL: .NET Excel-Bibliothek(Installationsanleitung):

IronXL ist eine .NET-Bibliothek, die es Ihnen ermöglicht, die Kalkulationstabelle in Microsoft Excel wie ein Objekt zu behandeln, so dass der Entwickler die volle Leistungsfähigkeit von C# und dem .NET-Framework nutzen kann, um den Datenstrom zu manipulieren. Als Entwickler wünschen wir uns eine Möglichkeit, mit der wir alle Zeilenzellen und Spalteninformationen aus Excel-Dokumenten/Arbeitsblättern in unsere Anwendungen oder Datenbanken übernehmen können.

Mit IronXL ist es möglich, alle Arten von Informationen aus einem Arbeitsblatt abzurufen, z. B. Zellwerte, Zellinhalte, Bilder, Referenzen und Formatierungen. IronXL ist in vielerlei Hinsicht besser als NPOI. IronXL bietet mehr Funktionen und kann das Schreiben komplexer Logik vereinfachen. Außerdem gibt es günstigere Lizenzen und das Support-Team ist kompetenter.

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

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

Option 2A - NuGet-Paketmanager verwenden

C# NuGet-Bibliothek für Excel

Installieren mit NuGet

Install-Package IronXL.Excel
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

C# NuGet-Bibliothek für Excel

Installieren mit NuGet

Install-Package IronXL.Excel
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

Fangen Sie noch heute an, IronPDF in Ihrem Projekt mit einer kostenlosen Testversion zu verwenden.

Erster Schritt:
green arrow pointer

Schau dir an IronXL an Nuget Für schnelle Installation und Bereitstellung. Mit über 8 Millionen Downloads verwandelt es Excel mit C#.

C# NuGet-Bibliothek für Excel nuget.org/packages/IronXL.Excel/
Install-Package IronXL.Excel

Erwägen Sie die Installation der IronXL DLL direkt. Laden Sie es herunter und installieren Sie es manuell für Ihr Projekt oder die GAC-Form: IronXL.zip

Manuelle Installation in Ihr Projekt

DLL herunterladen

Option 2B - PackageReference in der csproj-Datei hinzufügen

Sie können IronXL direkt zu Ihrem Projekt hinzufügen, indem Sie die folgende Zeile zu jedem <ItemGroup>in der Datei.csproj` Ihrer Lösung:

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

Wie hier in Visual Studio gezeigt:

Schritt 3 - Codierung des Dateiuploads und der Ansicht

Gehen Sie in der Visual Studio Solution View zum Ordner "Pages/" und suchen Sie die Datei "FetchData.razor". Sie können jede andere Razor-Datei verwenden, aber wir werden diese verwenden, weil sie mit dem Blazor Server App Template geliefert wird.

Ersetzen Sie den Inhalt der Datei replace durch den folgenden 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
    private DataTable displayDataTable = new DataTable();
    // When a file is uploaded to the App using the InputFile, trigger:
    async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
    {
        IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";
        // Open the File to a MemoryStream object
        MemoryStream ms = new MemoryStream();
        await e.File.OpenReadStream().CopyToAsync(ms);
        ms.Position = 0;
        // Define variables for IronXL
        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
        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
    private DataTable displayDataTable = new DataTable();
    // When a file is uploaded to the App using the InputFile, trigger:
    async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
    {
        IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";
        // Open the File to a MemoryStream object
        MemoryStream ms = new MemoryStream();
        await e.File.OpenReadStream().CopyToAsync(ms);
        ms.Position = 0;
        // Define variables for IronXL
        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
        for (int row = 1 ; row < loadedWorkSheet.RowCount ; row++)
        {
            IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().Select(c => c.ToString());
            displayDataTable.Rows.Add(excelRow.ToArray());
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Zusammenfassung

Die <InputFile>komponente ermöglicht es Ihnen, eine Datei auf diese Webseite hochzuladen. Und wir haben den aufgerufenen Ereignis-Callback so eingestellt, dass erOpenExcelFileFromDiskaufruft, die asynchrone Methode im@code`-Block unten. Das HTML wird Ihr Excel-Blatt als Tabelle auf der Registerkarte darstellen.

IronXL.Excel ist eine reine .NET-Softwarebibliothek zum Lesen einer Vielzahl von Tabellenkalkulationsformaten. Es ist nicht erforderlichMicrosoft Excel installiert werden muss und nicht von Interop abhängig ist.


Weitere Lektüre

Ansicht der API-Referenz

Entdecken Sie die API-Referenz für IronXL, die Details zu allen Funktionen, Namespaces, Klassen, Methoden, Feldern und Enums von IronXL enthält.

Ansicht der API-Referenz

Herunterladen das Softwareprodukt.