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:
- .NET Core 3.1 oder höher muss installiert sein.
- Eine geeignete IDE für die .NET-Entwicklung (Microsoft Visual Studio wird empfohlen).
- Grundlegendes Verständnis von ASP.NET Core und Razor Pages.
Ein neues .NET Core Projekt erstellen
- Öffnen Sie Microsoft Visual Studio und wählen Sie "Ein neues Projekt erstellen".
- Wählen Sie "ASP.NET Core Web App" aus der Liste der Projektvorlagen und klicken Sie auf "Weiter".
- 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".
- 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:
- Klicken Sie mit der rechten Maustaste auf das Projekt im Projektmappen-Explorer und wählen Sie "NuGet-Pakete verwalten".
-
Suchen Sie auf der Registerkarte "Durchsuchen" nach "IronXL" und klicken Sie auf "Installieren" für das Paket IronXL.Excel.
Suchen und installieren Sie das IronXL-Paket im NuGet-Paket-Manager-UI - 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.
- Klicken Sie mit der rechten Maustaste auf den Ordner "Seiten" im Projektmappen-Explorer und wählen Sie "Hinzufügen" > "Razor-Seite".
-
Geben Sie "ExcelOpener" als Seitennamen ein und klicken Sie auf "Hinzufügen".
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 bereitgestellte Klasse ExcelOpenerModel ist ein Razor Page Model. Diese Klasse besitzt 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
In der Methode OnGet wird IronXL verwendet, um eine Excel-Datei zu laden und die Daten aus dem Standardarbeitsblatt (dem ersten Blatt in der Arbeitsmappe) zu lesen. Jede Zeile wird als List<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
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 Standard-Excel-Arbeitsblatt (erstes Arbeitsblatt) in der Excel-Tabelle ab.sheet.GetCellAt(i, j).Value.ToString(): Diese Funktion ruft die Zelle an den angegebenen Zeilen- und Spaltenindizes ab und wandelt ihren Wert in eine Zeichenkette um. 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. Es enthält eine Eigenschaft namens Data vom Typ List<List<string>>, die die Daten aus der Excel-Datei aufnehmen wird.
Die Methode OnGet wird beim Seitenaufruf aufgerufen und ist für das Lesen der Daten aus der Excel-Datei zuständig. 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 dient zum Speichern von Änderungen an der Excel-Datei. 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
Erläuterung der wichtigsten Methoden
sheet.SetCellValue(i, j, Data[i][j]): Diese Methode legt den Wert der Zelle an den angegebenen Zeilen- und Spaltenindizes fest.workbook.SaveAs(filepath): Diese Methode speichert die Excel-Arbeitsmappe unter dem angegebenen Dateipfad.
Kurzerläuterung
Die Methode OnPost wird beim Absenden des Formulars aufgerufen und speichert die geänderten Daten in der Excel-Datei. Sie lädt die Excel-Datei, wählt das Standardarbeitsblatt aus und aktualisiert die Zellwerte anhand der vom Formular empfangenen geänderten Daten.
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. Nach der Bearbeitung wird durch Klicken auf die Schaltfläche "Speichern" das Formular abgeschickt, wodurch die Methode OnPost ausgelöst und die Änderungen in der Excel-Datei gespeichert werden.
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel
<form method="post">
<table class="table table-bordered table-striped">
@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]" />
</td>
}
</tr>
}
</table>
<input type="submit" class="btn btn-primary" value="Save" />
</form>
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel
<form method="post">
<table class="table table-bordered table-striped">
@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]" />
</td>
}
</tr>
}
</table>
<input type="submit" class="btn btn-primary" value="Save" />
</form>
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>
Ausführung der Anwendung und Erläuterung der Ausgabe
Erstellen Sie die Anwendung, indem Sie in Visual Studio auf die Schaltfläche "Erstellen" klicken oder die Tastenkombination Ctrl + Shift + 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.
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.




