Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Wie man eine Excel-Datei in ASP.NET Core öffnet

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

Was ist IronXL?

IronXL ist eine .NET-Excel-Bibliothek, die Funktionen für die Arbeit 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 Funktionen zum Schreiben, Bearbeiten und Lesen von Excel-Dateien mit nur wenigen Codezeilen. Eine detaillierte Anleitung zum Lesen von Excel-Dateien finden Sie in diesem Excel-Tutorial.

Die IronXL-Bibliothek kann Excel-Dokumente lesen und schreiben, Daten aus ihnen extrahieren, die Daten manipulieren und sogar neue Excel-Dateien von Grund auf 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 die folgenden Informationen haben:

  1. .NET Core 3.1 oder höher muss installiert sein.
  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 an, z. B. "Open_ExcelFile.NET_Core", wählen Sie einen Speicherort und klicken Sie auf "Weiter".
  4. Wählen Sie ".NET Core" als Zielframework 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. Suchen Sie auf der Registerkarte "Durchsuchen" nach "IronXL" und klicken Sie auf "Installieren" für das Paket IronXL.Excel.

    Öffnen von Excel-Dateien in ASP .NET Core, Abbildung 1: Suchen und installieren Sie das IronXL-Paket im NuGet Package Manager UI Suchen und installieren Sie das IronXL-Paket im NuGet-Paket-Manager-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.

Erstellen einer Razor-Seite

Lassen Sie uns nun eine Razor-Seite erstellen, 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 "ExcelOpener" als Seitennamen ein und klicken Sie auf "Hinzufügen".

    Öffnen von Excel-Dateien in ASP .NET Core, Abbildung 2: Erstellen einer neuen Razor-Seite Eine neue Razor-Seite erstellen

Dabei werden zwei Dateien erstellt: ExcelOpener.cshtml und ExcelOpener.cshtml.cs.

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

Lesen von Excel-Dateien

Lassen Sie uns in den Code eintauchen. Die mitgelieferte ExcelOpenerModel Klasse ist ein Razor Page Model. Diese Klasse hat eine List<List<string>>-Eigenschaft Data, die zum Speichern der aus einer Excel-Datei gelesenen Daten verwendet wird.

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 (dem ersten Blatt der Arbeitsmappe) zu lesen. Jede Zeile wird als Liste<string> dargestellt, und alle diese Listen werden dann der Eigenschaft Data 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);
    }
}
Public Sub OnGet()
	Try
		Data = New List(Of List(Of String))()
		' Load your Excel file
		Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")

		' Select your Worksheet
		Dim sheet As WorkSheet = workbook.DefaultWorkSheet

		For i As Integer = 0 To sheet.RowCount - 1
			Dim row = New List(Of String)()
			For j As Integer = 0 To sheet.ColumnCount - 1
				row.Add(sheet.GetCellAt(i, j).Value.ToString())
			Next j
			Data.Add(row)
		Next i
	Catch ex As Exception
		' Handle exceptions here
		Console.WriteLine(ex.Message)
	End Try
End Sub
$vbLabelText   $csharpLabel

Schlüsselmethoden erklärt

  • WorkBook.Load(filepath): Diese Methode lädt das Excel-Dokument aus dem angegebenen Dateipfad. Es hilft, die Excel-Tabelle zu laden und zu lesen.
  • workbook.DefaultWorkSheet: Diese Eigenschaft ruft das standardmäßige (erste) Excel-Arbeitsblatt in der Excel-Tabelle ab.
  • sheet.GetCellAt(i, j).Value.ToString(): Ermittelt die Zelle an den angegebenen Zeilen- und Spaltenindizes und konvertiert ihren Wert in eine Zeichenfolge. Dies ist ein Beispiel für eine Indexmethode, die auf der Grundlage von Zeilen- und Spaltenindizes auf bestimmte Zellen oder Bereiche innerhalb einer Excel-Datei zugreifen kann.

Kurzerläuterung

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

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

Schreiben von Excel-Dateien

Die Methode OnPost in der Klasse ExcelOpenerModel wird zum Speichern von Änderungen in der Excel-Datei verwendet. Sie lädt zunächst die Excel-Datei und ruft das Standardarbeitsblatt ab. Anschließend werden die Werte aus Data in die Zellen des Arbeitsblatts geschrieben und die Arbeitsmappe in einer neuen Datei gespeichert.

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.

Kurzerläuterung

Die Methode OnPost wird aufgerufen, wenn das Formular abgeschickt wird, und speichert die geänderten Daten zurück in die Excel-Datei. Sie lädt die Excel-Datei, wählt das Standard-Arbeitsblatt aus und aktualisiert die Zellwerte auf der Grundlage der geänderten Daten aus dem Formular.

HTML-Formular für die Bearbeitung von Excel-Daten

In ExcelOpener.cshtml wird ein Formular zur Anzeige und Bearbeitung der Daten aus der Excel-Datei definiert. Jeder Zellwert wird in einem Texteingabefeld angezeigt. Wenn Sie nach der Bearbeitung auf die Schaltfläche "Speichern" klicken, wird das Formular übermittelt, die Methode OnPost 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>
HTML

Navigieren zur Seite

In _Layout.cshtml wird dem Navigationsmenü ein Link zu dieser Seite 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ührung der Anwendung und Erläuterung der Ausgabe

Erstellen Sie die Anwendung, indem Sie auf die Schaltfläche "Erstellen" 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 ausgeführt wird, navigieren Sie zur Seite "ExcelOpener", indem Sie auf den entsprechenden Link in der Navigationsleiste klicken. Die Seite wird die Daten aus Excel in einem Tabellenformat anzeigen.

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.

Öffnen einer Excel-Datei in ASP .NET Core, Abbildung 3: Anzeige von Excel-Daten in der Webanwendung Anzeige von Excel-Daten in der Webanwendung

In diesem Tutorial wurde gezeigt, wie man eine Excel-Datei mit IronXL in einer ASP.NET Core-Anwendung öffnet. IronXL bietet eine einfache und bequeme Möglichkeit, Excel-Dateien zu lesen und zu bearbeiten. Die IronXL-Dokumentation enthält weitere Informationen über fortgeschrittene Merkmale und Funktionen.

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

Häufig gestellte Fragen

Wie kann ich eine Excel-Datei in einer ASP.NET Core-Anwendung öffnen?

Sie können eine Excel-Datei in einer ASP.NET Core-Anwendung mit der IronXL-Bibliothek öffnen. Installieren Sie zunächst das IronXL-Paket über NuGet und verwenden Sie dann WorkBook.Load, um Ihre Excel-Datei zu laden. Sie können auf Daten zugreifen, indem Sie das Arbeitsblatt auswählen und die Zeilen und Spalten durchlaufen.

Was sind die Vorteile der Verwendung von IronXL gegenüber Office Interop für die Excel-Bearbeitung?

IronXL ermöglicht die Arbeit mit Excel-Dateien, ohne dass Microsoft Excel oder Office Interop-Abhängigkeiten erforderlich sind, was es ideal für Serverumgebungen macht, in denen die Installation von Microsoft Office nicht machbar ist. Es unterstützt sowohl .NET Framework als auch .NET Core und verarbeitet sowohl .XLS- als auch .XLSX-Formate.

Wie kann ich Excel-Daten in einer Webanwendung mit Razor Pages anzeigen?

Um Excel-Daten in einer Webanwendung anzuzeigen, können Sie eine Razor Page erstellen, die IronXL verwendet, um die Excel-Daten zu laden und zu lesen. Verwenden Sie ein HTML-Formular, um die Daten jeder Zelle in Text-Eingabefelder zu rendern, damit Benutzer die Daten innerhalb der Weboberfläche anzeigen und bearbeiten können.

Was ist erforderlich, um ein ASP.NET Core-Projekt für Excel-Operationen einzurichten?

Um ein ASP.NET Core-Projekt für Excel-Operationen einzurichten, benötigen Sie .NET Core 3.1 oder höher, eine IDE wie Microsoft Visual Studio und ein grundlegendes Verständnis von ASP.NET Core und Razor Pages. Installieren Sie das IronXL-Paket über NuGet, um mit Excel-Dateien zu arbeiten.

Wie kann ich Änderungen an einer Excel-Datei in ASP.NET Core bearbeiten und speichern?

Sie können Änderungen an einer Excel-Datei bearbeiten und speichern, indem Sie Benutzern die Möglichkeit geben, Daten über ein HTML-Formular in einer Razor Page zu ändern. Verwenden Sie IronXL-Methoden wie sheet.SetCellValue, um die Daten zu aktualisieren, und workbook.SaveAs, um die geänderte Excel-Datei zu speichern.

Welche Schritte sind erforderlich, um eine Razor Page für Excel-Dateioperationen einzurichten?

Das Einrichten einer Razor Page beinhaltet das Erstellen einer neuen Razor Page in Ihrem ASP.NET Core-Projekt. Verwenden Sie die Razor Page, um Excel-Daten mit IronXL zu laden, sie in einem Webformular anzuzeigen und Formulareinreichungen zu bearbeiten, um Änderungen an der Excel-Datei zu aktualisieren und zu speichern.

Wie behebe ich Probleme, wenn meine Excel-Datei in ASP.NET Core nicht geladen wird?

Wenn Ihre Excel-Datei nicht geladen wird, stellen Sie sicher, dass der Dateipfad korrekt und für die Anwendung zugänglich ist. Überprüfen Sie, ob IronXL korrekt installiert ist und ob das Dateiformat unterstützt wird. Überprüfen Sie auf Ausnahmen oder Fehlermeldungen, die auf das Problem hinweisen könnten.

Kann ich die IronXL-Bibliothek ausprobieren, bevor ich sie kaufe?

Ja, IronXL bietet eine kostenlose Testversion, mit der Sie seine Fähigkeiten evaluieren können. Sie können diesen Test nutzen, um sicherzustellen, dass er Ihre Anforderungen erfüllt, bevor Sie sich für den Kauf einer Lizenz entscheiden.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen