IRONXL VERWENDEN

Wie man Excel-Dateien in ASP .NET Core öffnet

Regan Pun
Regan Pun
22. Juli 2023
Aktualisiert 23. August 2024
Teilen Sie:

In diesem Tutorial wird gezeigt, wie man mit IronXL eine Excel-Datei in einer ASP.NET Core-Anwendung mit der IronXL-Bibliothek öffnet. Es werden die grundlegenden Schritte zum Lesen von Excel-Dateien sowie zum Anzeigen der Daten und zum Speichern der geänderten Daten zurück in die Datei behandelt.

Was ist IronXL?

IronXL ist eine .NET Excel-Bibliothek, die Funktionen zum Arbeiten mit Excel-Dokumenten bietet, ohne dass Microsoft Excel oder Office Interop-Abhängigkeiten erforderlich sind. Es unterstützt sowohl .NET Framework als auch .NET Core und bietet die Möglichkeit, Excel-Dateien mit nur wenigen Zeilen Code zu schreiben, zu bearbeiten und zu lesen. Für ein detailliertes Tutorial zum Lesen von Excel-Dateien verweisen Sie bitte auf dieses Excel-Tutorial.

Die IronXL-Bibliothek kann Excel-Dokumente lesen und schreiben, Daten extrahieren und manipulieren, und sogar neue Excel-Dateien von Grund auf neu erstellen. IronXL unterstützt nicht nur das .XLS-Format, sondern ist auch kompatibel mit .XLSX, einem XML-basierten Dateiformat, das von Microsoft zur Darstellung von Tabellenkalkulationen entwickelt wurde.

Voraussetzungen

Bevor Sie in den Code eintauchen, stellen Sie sicher, dass Sie Folgendes haben:

  1. .NET Core 3.1 oder höher installiert.

  2. Eine geeignete IDE für die .NET-Entwicklung (Microsoft Visual Studio wird empfohlen).

  3. Grundlegendes Verständnis von ASP.NET Core und Razor Pages.

Ein neues .NET Core Projekt erstellen

  1. Öffnen Sie Microsoft Visual Studio und wählen Sie "Ein neues Projekt erstellen".

  2. Wählen Sie "ASP.NET Core Web App" aus der Liste der Projektvorlagen und klicken Sie auf "Weiter".

  3. Geben Sie einen Namen für Ihr Projekt ein, z. B. "Open_Excel_File_.NET_Core", wählen Sie einen Speicherort und klicken Sie auf "Weiter".

  4. Wählen Sie ".NET Core" als Ziel-Framework und "ASP.NET Core 3.1 oder höher" als Version. Wählen Sie im Abschnitt "Projektvorlage" die Option "Webanwendung" und klicken Sie auf "Erstellen".

IronXL-Paket installieren

Der nächste Schritt besteht darin, das IronXL-Paket in diesem neu erstellten Projekt zu installieren:

  1. Klicken Sie mit der rechten Maustaste auf das Projekt im Projektmappen-Explorer und wählen Sie "NuGet-Pakete verwalten".

  2. Im "Durchsuchen"-Tab suchen Sie nach "IronXL" und klicken Sie auf "Installieren" für das IronXL.Excel-Paket.

    So öffnen Sie eine Excel-Datei in ASP .NET Core, Abbildung 1: Suchen und installieren Sie das IronXL-Paket in der NuGet-Paket-Manager-UI

    Suchen und installieren Sie das IronXL-Paket im NuGet-Paketmanager-UI

  3. Warten Sie, bis das Paket installiert ist.

    Ihr ASP.NET Core-Projekt ist nun eingerichtet, und die IronXL-Bibliothek ist installiert und einsatzbereit.

Eine Razor-Seite erstellen

Nun erstellen wir eine Razor Page, um den Code zum Öffnen der Excel-Datei zu schreiben.

  1. Klicken Sie mit der rechten Maustaste auf den Ordner "Seiten" im Projektmappen-Explorer und wählen Sie "Hinzufügen" > "Razor-Seite".

  2. Geben Sie als Seitennamen "ExcelOpener" ein und klicken Sie auf "Hinzufügen".

    Wie man eine Excel-Datei in ASP .NET Core öffnet, Abbildung 2: Erstellen Sie eine neue Razer-Seite

    Erstellen Sie eine neue Razer-Seite

    Dies wird zwei Dateien erstellen: ExcelOpener.cshtml und ExcelOpener.cshtml.cs.

    Die ExcelOpener.cshtml-Datei enthält das HTML-Markup für die Seite und die ExcelOpener.cshtml.cs-Datei enthält den C#-Code-Behind für die Seite.

Lesen von Excel-Dateien

Schauen wir uns den Code an. Die bereitgestellte ExcelOpenerModel-Klasse ist ein Razor Page Model. Diese Klasse hat eine List<List<string>>-Eigenschaft Data, die verwendet wird, um die aus einer Excel-Datei gelesenen Daten zu speichern.

public List<List<string>> Data { get; set; }

public ExcelOpenerModel()
{
    Data = new List<List<string>>();
}
public List<List<string>> Data { get; set; }

public ExcelOpenerModel()
{
    Data = new List<List<string>>();
}
Public Property Data() As List(Of List(Of String))

'INSTANT VB WARNING: The following constructor is declared outside of its associated class:
'ORIGINAL LINE: public ExcelOpenerModel()
Public Sub New()
	Data = New List(Of List(Of String))()
End Sub
$vbLabelText   $csharpLabel

In der OnGet-Methode wird IronXL verwendet, um eine Excel-Datei zu laden und die Daten aus dem Standardarbeitsblatt (das erste Blatt in der Arbeitsmappe) zu lesen. Jede Zeile wird als List&lt;string&gt; dargestellt, und alle diese Listen werden dann der Data-Eigenschaft hinzugefügt.

public void OnGet()
{
    try
    {
        Data = new List<List<string>>();
        //Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        //Select your Worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < sheet.RowCount; i++)
        {
            var row = new List<string>();
            for (int j = 0; j < sheet.ColumnCount; j++)
            {
                row.Add(sheet.GetCellAt(i, j).Value.ToString());
            }
            Data.Add(row);
        }
    }
    catch (Exception ex)
    {
        //Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
public void OnGet()
{
    try
    {
        Data = new List<List<string>>();
        //Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        //Select your Worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < sheet.RowCount; i++)
        {
            var row = new List<string>();
            for (int j = 0; j < sheet.ColumnCount; j++)
            {
                row.Add(sheet.GetCellAt(i, j).Value.ToString());
            }
            Data.Add(row);
        }
    }
    catch (Exception ex)
    {
        //Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wichtige Methoden erklärt

  • WorkBook.Load(filepath): Diese Methode lädt das Excel-Dokument vom angegebenen Dateipfad. Es hilft beim Laden und Lesen der Excel-Tabelle.
  • workbook.DefaultWorkSheet: Diese Eigenschaft ruft das Standard- (erste) Excel-Arbeitsblatt in der Excel-Tabelle ab.
  • sheet.GetCellAt(i, j).Value.ToString(): Dies erhält die Zelle an den angegebenen Zeilen- und Spaltenindizes und konvertiert ihren Wert in eine Zeichenkette. Dies ist ein Beispiel für eine Indexmethode, die auf bestimmte Zellen oder Bereiche innerhalb einer Excel-Datei basierend auf Zeilen- und Spaltenindizes zugreifen kann.

Kurze Erläuterung

In der Datei ExcelOpener.cshtml.cs repräsentiert eine Klasse namens ExcelOpenerModel das Razor Page-Modell. Es enthält eine Eigenschaft namens Data vom Typ List<List<string>>, die die Daten aus der Excel-Datei speichern wird.

Die OnGet-Methode wird aufgerufen, wenn die Seite angefordert wird und ist dafür verantwortlich, die Daten aus der Excel-Datei zu lesen. Sie verwendet IronXL, um die Excel-Datei zu laden, wählt das Standardarbeitsblatt aus und iteriert über die Zeilen und Spalten, um die Data-Eigenschaft zu füllen.

Schreiben von Excel-Dateien

Die OnPost-Methode in der ExcelOpenerModel-Klasse wird verwendet, um Änderungen an der Excel-Datei zu speichern. Sie lädt zuerst die Excel-Datei und ruft das Standardarbeitsblatt ab. Es schreibt dann die Werte aus Data in die Zellen des Arbeitsblatts und speichert die Arbeitsmappe in einer neuen Datei.

public void OnPost()
{
    try
    {
        //Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        //Select your Worksheet
        var sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < Data.Count; i++)
        {
            for (int j = 0; j < Data [i].Count; j++)
            {
                sheet.SetCellValue(i, j, Data [i][j]);
            }
        }

        // Save the Excel file
        var filename = "C:\\ModifiedData.xlsx"
        workbook.SaveAs(filename);
    }
    catch (Exception ex)
    {
        //Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
public void OnPost()
{
    try
    {
        //Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        //Select your Worksheet
        var sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < Data.Count; i++)
        {
            for (int j = 0; j < Data [i].Count; j++)
            {
                sheet.SetCellValue(i, j, Data [i][j]);
            }
        }

        // Save the Excel file
        var filename = "C:\\ModifiedData.xlsx"
        workbook.SaveAs(filename);
    }
    catch (Exception ex)
    {
        //Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
Public Sub OnPost()
	Try
		'Load your Excel file
		Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")

		'Select your Worksheet
		Dim sheet = workbook.DefaultWorkSheet

		For i As Integer = 0 To Data.Count - 1
			Dim j As Integer = 0
			Do While j < Data (i).Count
				sheet.SetCellValue(i, j, Data (i)(j))
				j += 1
			Loop
		Next i

		' Save the Excel file
		Dim filename = "C:\ModifiedData.xlsx" workbook.SaveAs(filename)
	Catch ex As Exception
		'Handle exceptions here
		Console.WriteLine(ex.Message)
	End Try
End Sub
$vbLabelText   $csharpLabel

Erläuterung der wichtigsten Methoden

  • sheet.SetCellValue(i, j, Data[i][j]): Diese Methode setzt den Wert der Zelle an den angegebenen Zeilen- und Spaltenindizes.
  • workbook.SaveAs(filepath): Diese Methode speichert die Excel-Arbeitsmappe im angegebenen Dateipfad.

Kurze Erläuterung

Die OnPost-Methode wird aufgerufen, wenn das Formular übermittelt wird, und speichert die geänderten Daten zurück in die Excel-Datei. Sie lädt die Excel-Datei, wählt das Standardarbeitsblatt aus und aktualisiert die Zellwerte basierend auf den vom Formular empfangenen geänderten Daten.

HTML-Formular zur Bearbeitung von Excel-Daten

In ExcelOpener.cshtml wird ein Formular definiert, um die Daten aus der Excel-Datei anzuzeigen und zu bearbeiten. Jeder Zellwert wird in einem Texteingabefeld angezeigt. Nach dem Bearbeiten wird durch Klicken auf die Schaltfläche "Speichern" das Formular gesendet, die OnPost-Methode ausgelöst und die Änderungen in der Excel-Datei gespeichert.

@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel

<form method="post">
    <table class="table table-bordered table-striped">
        <!-- Bootstrap classes for tables -->
        @for (int i = 0; i < Model.Data.Count; i++)
        {
            <tr>
                @for (int j = 0; j < Model.Data[i].Count; j++)
                {
                    <td>
                        <input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" /> <!-- Bootstrap class for form controls -->
                    </td>
                }
            </tr>
        }
    </table>

    <input type="submit" class="btn btn-primary" value="Save" /> <!-- Bootstrap classes for buttons -->
</form>
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel

<form method="post">
    <table class="table table-bordered table-striped">
        <!-- Bootstrap classes for tables -->
        @for (int i = 0; i < Model.Data.Count; i++)
        {
            <tr>
                @for (int j = 0; j < Model.Data[i].Count; j++)
                {
                    <td>
                        <input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" /> <!-- Bootstrap class for form controls -->
                    </td>
                }
            </tr>
        }
    </table>

    <input type="submit" class="btn btn-primary" value="Save" /> <!-- Bootstrap classes for buttons -->
</form>
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Zur Seite navigieren

In _Layout.cshtml wird ein Link zur Seite dem Navigationsmenü hinzugefügt. Wenn Sie auf diesen Link klicken, gelangen Sie auf die Excel-Öffnerseite.

<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
HTML

Ausführen der Anwendung und Erläuterung der Ausgabe

Erstellen Sie die Anwendung, indem Sie auf die Schaltfläche "Build" in Visual Studio klicken oder die Tastenkombination Strg + Umschalt + B verwenden. Führen Sie die Anwendung aus, indem Sie F5 drücken oder auf die Schaltfläche "Start" in Visual Studio klicken.

Sobald die Anwendung läuft, navigieren Sie zur Seite "ExcelOpener", indem Sie auf den entsprechenden Link in der Navigationsleiste klicken. Auf der Seite werden die Daten aus Excel in einem Tabellenformat angezeigt.

Sie können die Daten in der Tabelle ändern und auf die Schaltfläche "Speichern" klicken, um die Änderungen wieder in der Excel-Datei zu speichern.

So öffnen Sie Excel-Dateien in ASP .NET Core, Abbildung 3: Anzeige von Excel-Daten in der Webanwendung

Excel-Daten in der Webanwendung anzeigen

Dieses Tutorial zeigte, wie man eine Excel-Datei mit IronXL in einer ASP.NET Core-Anwendung öffnet. IronXL bietet eine einfache und bequeme Möglichkeit zum Lesen und Bearbeiten von Excel-Dateien. In der IronXL-Dokumentation finden Sie weitere fortgeschrittene Merkmale und Funktionen.

IronXL bietet eine kostenlose Testversion an, mit der Sie seine Fähigkeiten bewerten können. Wenn Sie es für Ihre Projekte nützlich finden, können Sie eine Lizenz ab $749 erwerben.

Regan Pun
Software-Ingenieur
Regan schloss sein Studium an der University of Reading mit einem BA in Elektrotechnik ab. Bevor er zu Iron Software kam, konzentrierte er sich in seinen früheren Jobs auf einzelne Aufgaben. Was ihm bei Iron Software am meisten Spaß macht, ist das Spektrum der Aufgaben, die er übernehmen kann, sei es im Vertrieb, im technischen Support, in der Produktentwicklung oder im Marketing. Es macht ihm Spaß, die Art und Weise zu verstehen, wie Entwickler die Bibliothek von Iron Software nutzen, und dieses Wissen zu nutzen, um die Dokumentation und die Produkte kontinuierlich zu verbessern.
< PREVIOUS
Wie man mit Excel-Dateien mithilfe von IronXL arbeitet: Eine .NET Excel-Bibliothek
NÄCHSTES >
Zellen in Excel zusammenführen, ohne Daten zu verlieren

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

Lizenzen anzeigen >