Wie man Excel Interop in C# alternativ verwendet

C# Excel Interop Workaround

This article was translated from English: Does it need improvement?
Translated
View the article in English

Viele Projekte nutzen Excel, um klar zu kommunizieren, aber wenn Sie Microsoft.Office.Interop.Excel verwenden, mussten Sie wahrscheinlich viele komplizierte 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.

class="learnn-how-section">
class="row">
class="col-sm-6">

C# Excel ohne Interop

  • Download der Excel No Interop Bibliothek
  • Zugriff auf Excel-Datei in C#
  • Erstellen Sie eine neue Excel-Datei und fügen Sie programmatisch Daten ein
  • Vorhandene Dateien ändern, Zellenwerte aktualisieren und ersetzen, Zeilen entfernen und mehr
class="col-sm-6">
class="download-card"> How To Work related to C# Excel Interop Workaround

Wie man Excel Interop alternativ verwendet

  1. Installieren Sie eine Excel-Bibliothek, um Excel-Dateien zu verarbeiten.
  2. Öffnen Sie das Workbook und fügen Sie die aktuelle Excel-Datei hinzu.
  3. Setzen Sie das Standard-Arbeitsblatt.
  4. Lesen Sie den Wert aus dem Excel-Arbeitsbuch.
  5. Verarbeiten und zeigen Sie den Wert an.

class="tutorial-segment-title">Schritt 1

1. IronXL-Bibliothek herunterladen

Download IronXL Library or 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

class="tutorial-segment-title">Wie man ein Tutorial erstellt

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 Lesezugriff auf eine bestimmte Excel-Datei gewährt.

Nachdem Sie auf das WorkBook zugegriffen haben, können Sie dann ein bestimmtes WorkSheet 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
$vbLabelText   $csharpLabel

Dieser Code wird das folgende Ergebnis erzeugen:

class="center-image-wrapper"> 1output related to 2. Zugriff auf Excel-Dateidaten

Mit der Excel-Datei, die so aussieht:

class="center-image-wrapper"> 1excel related to 2. Zugriff auf Excel-Dateidaten

Wir können sehen, dass unsere Excel-Datei, sample.xlsx, kleines Unternehmen in der Zelle A5 hat. Die anderen Werte von B2 bis B10 sind dieselben und werden im Ergebnis 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)
$vbLabelText   $csharpLabel

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 bietet IronXL die Funktion WorkBook.Create(), die eine neue Excel-Datei erstellt.

Wir können dann so viele Arbeitsblätter wie nötig mit der Funktion WorkBook.CreateWorkSheet() 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
$vbLabelText   $csharpLabel

Der obige Code wird eine neue Excel-Datei mit dem Namen NewExcelFile.xlsx erstellen und neue Daten in die Zellenadressen A1 und B2 mit den Werten New Value A1 und New Value B2 bzw. 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
$vbLabelText   $csharpLabel

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"
$vbLabelText   $csharpLabel

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 das einfache Ersetzen von alten Werten durch neue Werte in vorhandenen Excel-Dateien, die alle folgenden Aspekte abdecken:

  • Werte eines gesamten Arbeitsblatts ersetzen:
ws.Replace("old value", "new value");
ws.Replace("old value", "new value");
ws.Replace("old value", "new value")
$vbLabelText   $csharpLabel
  • 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")
$vbLabelText   $csharpLabel
  • 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")
$vbLabelText   $csharpLabel
  • 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")
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

Der obige 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
$vbLabelText   $csharpLabel

Der obige Code entfernt die Zeile Nummer 2 aus sample.xlsx.


class="tutorial-segment-title">Tutorial Schneller Zugriff

class="tutorial-section">
class="row">
class="col-sm-8">

IronXL Referenz

Lesen Sie die API-Referenz für IronXL, um mehr über alle Funktionen, Features, Klassen und Namensräume zu erfahren.

IronXL Referenz
class="col-sm-4">
class="tutorial-image"> Documentation related to class=Tutorial Schneller Zugriff" class="img-responsive add-shadow img-responsive img-popup" src="/img/svgs/documentation.svg" loading="lazy">

Hä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.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 1,686,155 | Version: 2025.11 gerade veröffentlicht