C# Excel Interop Alternative: Excel Tabelle erstellen ohne Interop
Viele Projekte nutzen Excel, um klar zu kommunizieren, aber wenn Sie Microsoft.Office.Interop.Excel verwenden, dann mussten Sie sich wahrscheinlich schon mit vielen komplizierten Codezeilen auseinandersetzen. In diesem Tutorial verwenden wir IronXL als C# Excel Interop-Alternative, damit Sie kein Interop nutzen müssen. Mit IronXL können Sie eine Excel Tabelle erstellen, Excel bearbeiten und Excel-Daten programmatisch manipulieren – ohne Office-Installation.
- Excel No Interop Library herunterladen
- Zugriff auf Excel-Datei in C#
- Eine neue Excel-Datei erstellen und Daten programmatisch einfügen
- Ändern Sie bestehende Dateien, aktualisieren und ersetzen Sie Zellwerte, entfernen Sie Zeilen und mehr
Wie man Excel Interop alternativ verwendet
- Installieren Sie eine Excel-Bibliothek, um Excel-Dateien zu verarbeiten.
- Öffnen Sie die Datei
Workbookund fügen Sie die aktuelle Excel-Datei hinzu. - Setzen Sie das Standard-Arbeitsblatt.
- Lesen Sie den Wert aus dem Excel-Arbeitsbuch.
- Verarbeiten und zeigen Sie den Wert an.
Schritt 1
1. IronXL-Bibliothek herunterladen
Laden Sie die IronXL-Bibliothek herunter oder installieren Sie sie mit NuGet, um auf die kostenlose Bibliothek zuzugreifen, und folgen Sie dann Schritt für Schritt diesem Tutorial zur Verwendung von Excel ohne Interop. Lizenzen sind verfügbar, wenn Sie mit Ihrem Projekt live gehen möchten.
Install-Package IronXL.Excel
Anleitung zum Tutorial
2. Zugriff auf Excel-Dateidaten
Um Geschäftsanwendungen zu entwickeln, benötigen wir einfachen und perfekten Zugriff auf Daten aus Excel-Dateien und die Möglichkeit, sie programmatisch gemäß einer Vielzahl von Anforderungen zu manipulieren. Mit IronXL verwenden Sie die Funktion WorkBook.Load(), die Zugriff auf das Lesen einer bestimmten Excel-Datei gewährt.
Nach dem Zugriff auf die Arbeitsmappe können Sie dann mit der Funktion WorkBook.GetWorkSheet() ein bestimmtes Arbeitsblatt auswählen. Jetzt stehen Ihnen alle Excel-Daten zur Verfügung. Sehen Sie sich das folgende Beispiel an, wie wir diese Funktionen verwenden, um Excel-Daten in einem C#-Projekt zu erhalten.
// Import the IronXL library to access its functionality
using IronXL;
static void Main(string[] args)
{
// Access Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");
// Access WorkSheet of Excel file
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Get a specific cell value, convert it to a string, and print it
string a = ws["A5"].Value.ToString();
Console.WriteLine("Getting Single Value:\n\n Value of Cell A5: {0}", a);
Console.WriteLine("\nGetting Many Cells Value using Loop:\n");
// Get multiple cell values using range function and iterate through them
foreach (var cell in ws["B2:B10"])
{
Console.WriteLine(" Value is: {0}", cell.Text);
}
Console.ReadKey(); // Pause the console to view output
}
// Import the IronXL library to access its functionality
using IronXL;
static void Main(string[] args)
{
// Access Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");
// Access WorkSheet of Excel file
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Get a specific cell value, convert it to a string, and print it
string a = ws["A5"].Value.ToString();
Console.WriteLine("Getting Single Value:\n\n Value of Cell A5: {0}", a);
Console.WriteLine("\nGetting Many Cells Value using Loop:\n");
// Get multiple cell values using range function and iterate through them
foreach (var cell in ws["B2:B10"])
{
Console.WriteLine(" Value is: {0}", cell.Text);
}
Console.ReadKey(); // Pause the console to view output
}
' Import the IronXL library to access its functionality
Imports Microsoft.VisualBasic
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Access Excel file
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
' Access WorkSheet of Excel file
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Get a specific cell value, convert it to a string, and print it
Dim a As String = ws("A5").Value.ToString()
Console.WriteLine("Getting Single Value:" & vbLf & vbLf & " Value of Cell A5: {0}", a)
Console.WriteLine(vbLf & "Getting Many Cells Value using Loop:" & vbLf)
' Get multiple cell values using range function and iterate through them
For Each cell In ws("B2:B10")
Console.WriteLine(" Value is: {0}", cell.Text)
Next cell
Console.ReadKey() ' Pause the console to view output
End Sub
Dieser Code wird das folgende Ergebnis erzeugen:
Mit der Excel-Datei, die so aussieht:
Wir können sehen, dass unsere Excel-Datei, sample.xlsx, in der Zelle A5 den Wert small business enthält. Die übrigen Werte von B2 bis B10 sind gleich und werden in der Ausgabe angezeigt.
DataSet und DataTables
Wir können auch mit Excel-Dateien als DataSet und DataTables arbeiten, indem wir diese Anweisungen befolgen.
// Access WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Convert workbook to DataSet
DataSet ds = wb.ToDataSet();
// Convert worksheet to DataTable
DataTable dt = ws.ToDataTable(true);
// Access WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Convert workbook to DataSet
DataSet ds = wb.ToDataSet();
// Convert worksheet to DataTable
DataTable dt = ws.ToDataTable(true);
' Access WorkBook and WorkSheet
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Convert workbook to DataSet
Dim ds As DataSet = wb.ToDataSet()
' Convert worksheet to DataTable
Dim dt As DataTable = ws.ToDataTable(True)
Sie können mehr darüber lesen, wie Sie mit Excel DataSet und DataTables arbeiten, was mehr Codebeispiele und Erklärungen zum Prozess bietet.
Nun werden wir einen anderen Aspekt sehen, der das Erstellen einer neuen Excel-Datei in unserem C#-Projekt betrifft.
3. Neue Excel-Datei erstellen
Wir können problemlos eine neue Excel-Tabelle erstellen und Daten programmgesteuert darin einfügen in unserem C#-Projekt. Hierfür stellt IronXL die Funktion WorkBook.Create() zur Verfügung, die eine neue Excel-Datei erstellt.
Anschließend können wir mithilfe der Funktion WorkBook.CreateWorkSheet() beliebig viele Arbeitsblätter erstellen.
Danach können wir auch Daten einfügen, wie im folgenden Beispiel gezeigt:
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Create a new WorkBook
WorkBook wb = WorkBook.Create();
// Create a new WorkSheet in the workbook
WorkSheet ws = wb.CreateWorkSheet("sheet1");
// Insert data into cells
ws["A1"].Value = "New Value A1";
ws["B2"].Value = "New Value B2";
// Save the newly created Excel file
wb.SaveAs("NewExcelFile.xlsx");
}
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Create a new WorkBook
WorkBook wb = WorkBook.Create();
// Create a new WorkSheet in the workbook
WorkSheet ws = wb.CreateWorkSheet("sheet1");
// Insert data into cells
ws["A1"].Value = "New Value A1";
ws["B2"].Value = "New Value B2";
// Save the newly created Excel file
wb.SaveAs("NewExcelFile.xlsx");
}
' Import the IronXL library
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Create a new WorkBook
Dim wb As WorkBook = WorkBook.Create()
' Create a new WorkSheet in the workbook
Dim ws As WorkSheet = wb.CreateWorkSheet("sheet1")
' Insert data into cells
ws("A1").Value = "New Value A1"
ws("B2").Value = "New Value B2"
' Save the newly created Excel file
wb.SaveAs("NewExcelFile.xlsx")
End Sub
Der obige Code erstellt eine neue Excel-Datei mit dem Namen NewExcelFile.xlsx und fügt neue Daten in die Zellen A1 und B2 mit den Werten New Value A1 bzw. New Value B2 ein. Mit diesem Setup können Sie in gleicher Weise so viel Daten einfügen, wie Sie benötigen.
Hinweis: Wenn Sie eine neue Excel-Datei erstellen oder eine vorhandene ändern, vergessen Sie nicht, die Datei zu speichern, wie im obigen Beispiel gezeigt.
Tauchen Sie tiefer in die Materie ein, wie Sie neue Excel-Tabellen mit C# erstellen und probieren Sie den Code in Ihrem Projekt.
4. Vorhandene Excel-Datei ändern
Wir können vorhandene Excel-Dateien ändern und aktualisierte Daten programmgesteuert einfügen. Bei Änderungen an Excel-Dateien werden wir die folgenden Aspekte sehen:
- Aktualisieren der Zellwerte
- Ersetzen alter Werte durch neue
- Entfernen von Zeilen oder Spalten
Lassen Sie uns sehen, wie wir die obigen Themen in unserem C#-Projekt umsetzen.
Zellwert aktualisieren
Es ist sehr einfach, den Zellwert eines vorhandenen Excel-Blattes zu aktualisieren. Greifen Sie einfach auf die Excel-Datei im Projekt zu und spezifizieren Sie ihr Arbeitsblatt, und aktualisieren Sie dann ihre Daten, wie im folgenden Beispiel gezeigt:
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Update A3 cell value
ws["A3"].Value = "New Value of A3";
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Update A3 cell value
ws["A3"].Value = "New Value of A3";
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
' Import the IronXL library
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Access the WorkBook and WorkSheet
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Update A3 cell value
ws("A3").Value = "New Value of A3"
' Save the updated Excel file
wb.SaveAs("sample.xlsx")
End Sub
Der obige Code aktualisiert den Wert der Zelle A3 mit New Value of A3.
Wir können auch mehrere Zellen mit einem statischen Wert aktualisieren, indem wir die Bereichsfunktion verwenden:
ws["A3:C3"].Value = "New Value";
ws["A3:C3"].Value = "New Value";
ws("A3:C3").Value = "New Value"
Dadurch werden die Zellen in Zeile 3 von A3 bis C3 in der Excel-Datei mit den Werten New Value aktualisiert.
Erfahren Sie mehr über die Verwendung der Bereichsfunktion in C# mit diesen Beispielen.
Zellwerte ersetzen
Eine der Stärken von IronXL ist die Fähigkeit, old values in bestehenden Excel-Dateien einfach durch new values zu ersetzen, wobei alle folgenden Aspekte berücksichtigt werden:
- Werte eines gesamten Arbeitsblatts ersetzen:
ws.Replace("old value", "new value");
ws.Replace("old value", "new value");
ws.Replace("old value", "new value")
- Werte einer bestimmten Zeile ersetzen:
ws.Rows[RowIndex].Replace("old value", "new value");
ws.Rows[RowIndex].Replace("old value", "new value");
ws.Rows(RowIndex).Replace("old value", "new value")
- Werte einer bestimmten Spalte ersetzen:
ws.Columns[ColumnIndex].Replace("old value", "new Value");
ws.Columns[ColumnIndex].Replace("old value", "new Value");
ws.Columns(ColumnIndex).Replace("old value", "new Value")
- Werte in einem bestimmten Bereich ersetzen:
ws["From:To"].Replace("old value", "new value");
ws["From:To"].Replace("old value", "new value");
ws("From:To").Replace("old value", "new value")
Lassen Sie uns ein Beispiel ansehen, um genau zu sehen, wie wir die obigen Funktionen in unserem C#-Projekt verwenden, um die Werte zu ersetzen. In diesem Beispiel werden wir die Ersetzungsfunktion verwenden, um einen Wert in einem bestimmten Bereich zu ersetzen.
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Specify a range from B5 to G5 and replace "Normal" value with "Good"
ws["B5:G5"].Replace("Normal", "Good");
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Specify a range from B5 to G5 and replace "Normal" value with "Good"
ws["B5:G5"].Replace("Normal", "Good");
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
' Import the IronXL library
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Access the WorkBook and WorkSheet
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Specify a range from B5 to G5 and replace "Normal" value with "Good"
ws("B5:G5").Replace("Normal", "Good")
' Save the updated Excel file
wb.SaveAs("sample.xlsx")
End Sub
Der obige Code ersetzt den Wert Normal durch Good von B5 bis G5, der Rest des Arbeitsblatts bleibt unverändert. Sehen Sie mehr darüber, wie Sie Excel-Zellenwerte in einem Bereich bearbeiten mit dieser Funktion von IronXL.
Zeilen der Excel-Datei entfernen
In der Anwendungsentwicklung müssen wir manchmal ganze Zeilen aus vorhandenen Excel-Dateien programmgesteuert entfernen. Für diese Aufgabe verwenden wir die Remove() Funktion von IronXL. Hier ist ein Beispiel:
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Remove the row number 2
ws.Rows[2].Remove();
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Remove the row number 2
ws.Rows[2].Remove();
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
' Import the IronXL library
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Access the WorkBook and WorkSheet
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Remove the row number 2
ws.Rows(2).Remove()
' Save the updated Excel file
wb.SaveAs("sample.xlsx")
End Sub
Der obige Code entfernt die Zeile 2 aus sample.xlsx.
Tutorial Schnellzugriff
Lesen Sie die API-Referenz für IronXL, um mehr über alle Funktionen, Merkmale, Klassen und Namespaces zu erfahren.
IronXL-ReferenzHäufig gestellte Fragen
Wie kann ich eine Excel-Datei in C# lesen, ohne Interop zu verwenden?
Sie können IronXL verwenden, um Excel-Dateien in C# zu lesen, ohne Interop zu benötigen. Laden Sie die Datei mit der Funktion WorkBook.Load() und greifen Sie mit WorkBook.GetWorkSheet() auf das Arbeitsblatt zu.
Was ist der Prozess, um programmatisch eine neue Excel-Datei in C# zu erstellen?
Mit IronXL können Sie eine neue Excel-Datei erstellen, indem Sie die Methode WorkBook.Create() verwenden und dann Daten mit WorkSheet.CreateWorkSheet() hinzufügen.
Ist es möglich, Excel-Dateien in C# zu ändern, ohne Interop zu verwenden?
Ja, IronXL bietet die Möglichkeit, Excel-Dateien ohne Interop zu ändern, indem Zellwerte aktualisiert, alte Werte ersetzt und Zeilen oder Spalten direkt entfernt werden.
Wie aktualisiere ich einen bestimmten Zellenwert in einem Excel-Blatt mit IronXL?
Um einen Zellwert zu aktualisieren, laden Sie Ihr Arbeitsblatt mit WorkBook.GetWorkSheet(), weisen Sie der Zelle einen neuen Wert zu und speichern Sie die Änderungen.
Kann ich Werte in einem Bereich von Zellen mit IronXL ersetzen?
IronXL ermöglicht es Ihnen, Werte in einem Bereich zu ersetzen, indem Sie die Funktion Replace() auf einem Arbeitsblatt oder einem bestimmten Bereichsobjekt verwenden.
Was sind die Vorteile der Verwendung von IronXL gegenüber Microsoft.Office.Interop.Excel?
IronXL vereinfacht die Bearbeitung von Excel-Dateien, indem es eine benutzerfreundliche API bereitstellt, die Notwendigkeit für komplexen Interop-Code reduziert und bessere Leistung und Zuverlässigkeit bietet.
Wie kann ich eine Zeile aus einer Excel-Datei mit IronXL entfernen?
Um eine Zeile in IronXL zu entfernen, verwenden Sie die Funktion Remove() auf dem angegebenen Zeilenobjekt innerhalb des Arbeitsblatts.
Unterstützt IronXL die Umwandlung von Excel-Dateien in DataSets und DataTables?
Ja, IronXL unterstützt die Konvertierung von Arbeitsbüchern in DataSets und Arbeitsblättern in DataTables, wodurch eine flexiblere Datenmanipulation möglich ist.
Wie installiere ich IronXL in einem C#-Projekt?
Sie können IronXL in Ihrem C#-Projekt installieren, indem Sie es von der Iron Software-Website herunterladen oder den NuGet-Paketmanager mit dem Befehl verwenden: Install-Package IronXL.Excel.
Ist IronXL für große Excel-Dateien geeignet?
IronXL ist optimiert, um große Excel-Dateien effizient zu handhaben und bietet im Vergleich zu traditionellen Interop-Methoden schnelle Verarbeitungsgeschwindigkeit und minimale Speichernutzung.



