C# Excel Interop Workaround
Viele Projekte verwenden Excel, um klar zu kommunizieren, aber wenn Sie Microsoft.Office.Interop.Excel verwenden, mussten Sie wahrscheinlich viele komplexe Codezeilen bewältigen. In diesem Tutorial verwenden wir IronXL als C# Excel Interop-Workaround, damit Sie kein Interop nutzen müssen, um Ihr Projekt abzuschließen. Sie können C#-Programmierung verwenden, um Excel-Daten zu nutzen, Excel-Dateien zu erstellen, zu bearbeiten und zu manipulieren.
C# Excel Keine Interop
- 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 das
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 WorkBook.Load() Funktion, die den Zugriff auf das Lesen einer bestimmten Excel-Datei gewährt.
Nach dem Zugriff auf das Arbeitsbuch können Sie dann ein spezifisches Arbeitsblatt mit der WorkBook.GetWorkSheet() Funktion 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 small business Zelle enthält. Die anderen Werte von B2 bis B10 sind gleich und im Output angezeigt.
DataSet und DataTables
Wir können auch mit Excel-Dateien als DataSet und DataTables arbeiten, indem wir diese Anweisungen befolgen.
:path=/static-assets/excel/content-code-examples/get-started/c-sharp-excel-interop-3.cs
// 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);
Imports System.Data
' 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. Um dies zu erreichen, stellt IronXL die WorkBook.Create() Funktion bereit, die eine neue Excel-Datei erstellt.
Wir können dann so viele Arbeitsblätter wie nötig mit der WorkBook.CreateWorkSheet() Funktion 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 obenstehende Code wird eine neue Excel-Datei mit dem Namen NewExcelFile.xlsx erstellen und neue Daten in die Zelladressen A1 und B2 mit den Werten New Value A1 und New Value B2 einfügen. 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 obenstehende Code wird den Wert der Zelle A3 mit New Value of A3 aktualisieren.
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"
Dies wird die Zeilennummer 3 von A3 bis C3 Zellen mit dem New Value in der Excel-Datei aktualisieren.
Erfahren Sie mehr über die Verwendung der Bereichsfunktion in C# mit diesen Beispielen.
Zellwerte ersetzen
Eine der Stärken von IronXL ist seine Fähigkeit, einfach old values mit new values in bestehenden Excel-Dateien zu ersetzen, um alle folgenden Aspekte abzudecken:
- 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 oben stehende Code wird den Normal Wert mit Good von B5 bis G5 ersetzen und der Rest des Arbeitsblatts bleibt gleich. 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 obenstehende Code wird die Zeilennummer 2 von sample.xlsx entfernen.
Tutorial Schnellzugriff
IronXL-Referenz
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.



