C# Excel-Datei bearbeiten

Chaknith Bin
Chaknith Bin
19. Juli 2020
Aktualisiert 20. Oktober 2024
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Entwickler müssen vorsichtig sein, wenn sie Excel-Dateien in C# ändern und bearbeiten wollen, denn ein einziger Fehler kann leicht das gesamte Dokument verändern. Die Möglichkeit, sich auf einfache und effiziente Codezeilen zu verlassen, trägt dazu bei, das Fehlerrisiko zu verringern, und erleichtert es uns, Excel-Dateien programmatisch zu bearbeiten oder zu löschen. Heute gehen wir die Schritte durch, die notwendig sind, um Excel-Dateien in C# korrekt und schnell mit getesteten Funktionen zu bearbeiten.


Schritt 1

C# Excel-Dateien mit der IronXL-Bibliothek bearbeiten

In diesem Tutorial verwenden wir die von IronXL, einer C#-Excel-Bibliothek, definierten Funktionen. Um diese Funktionen zu nutzen, müssen Sie sie zuerst herunterladen und in Ihr Projekt installieren (kostenlos für die Entwicklung).

Sie können entweder IronXL.zip herunterladen oder mehr lesen und über die NuGet-Paketseite installieren.

Sobald Sie es installiert haben, können wir loslegen!

Install-Package IronXL.Excel

Anleitung zum Tutorial

2. Bestimmte Zellenwerte bearbeiten

Zunächst werden wir uns ansehen, wie man die spezifischen Zellwerte eines Excel-Arbeitsblatts bearbeitet.

Zu diesem Zweck importieren wir das zu ändernde Excel SpreadSheet und greifen dann auf dessen WorkSheet zu. Dann können wir die Änderungen wie unten gezeigt vornehmen.

/**
Import and Edit SpreadSheet
anchor-edit-specific-cell-values
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");//import Excel SpreadSheet
    WorkSheet ws = wb.GetWorkSheet("Sheet1");//access specific workshet
    ws.Rows [3].Columns [1].Value = "New Value";//access specific cell and modify its value
    wb.SaveAs("sample.xlsx");//save changes
}
/**
Import and Edit SpreadSheet
anchor-edit-specific-cell-values
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");//import Excel SpreadSheet
    WorkSheet ws = wb.GetWorkSheet("Sheet1");//access specific workshet
    ws.Rows [3].Columns [1].Value = "New Value";//access specific cell and modify its value
    wb.SaveAs("sample.xlsx");//save changes
}
'''
'''Import and Edit SpreadSheet
'''anchor-edit-specific-cell-values
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx") 'import Excel SpreadSheet
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") 'access specific workshet
	ws.Rows (3).Columns (1).Value = "New Value" 'access specific cell and modify its value
	wb.SaveAs("sample.xlsx") 'save changes
End Sub
$vbLabelText   $csharpLabel

Here are before and after screenshots of Excel SpreadSheet sample.xlsx:

Before After

:---: :-----:

before after

We can see how simple it is to modify the Excel SpreadSheet value.

If needed, there is also an alternative way to edit the specific cell value by cell address:

 ws ["B4"].Value = "New Value"; //alternative way to access specific cell and apply changes
 ws ["B4"].Value = "New Value"; //alternative way to access specific cell and apply changes
ws ("B4").Value = "New Value" 'alternative way to access specific cell and apply changes
$vbLabelText   $csharpLabel

3. Volle Zeilenwerte bearbeiten

Es ist ziemlich einfach, ganze Zeilenwerte eines Excel-Tabellenblatts mit einem statischen Wert zu bearbeiten.

/**
Edit Full Row Values
anchor-edit-full-row-values
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    ws.Rows [3].Value = "New Value";        
    wb.SaveAs("sample.xlsx");
}
/**
Edit Full Row Values
anchor-edit-full-row-values
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    ws.Rows [3].Value = "New Value";        
    wb.SaveAs("sample.xlsx");
}
'''
'''Edit Full Row Values
'''anchor-edit-full-row-values
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	ws.Rows (3).Value = "New Value"
	wb.SaveAs("sample.xlsx")
End Sub
$vbLabelText   $csharpLabel

Sehen Sie die Screenshots von sample.xlsx unten:

Vor Nach

:---: :-----:

vorher nachher

Zu diesem Zweck können wir auch den Wert eines bestimmten Bereichs der Zeile bearbeiten, indem wir die Bereichsfunktion verwenden:

ws ["A3:E3"].Value = "New Value";
ws ["A3:E3"].Value = "New Value";
ws ("A3:E3").Value = "New Value"
$vbLabelText   $csharpLabel

4. Vollständige Spaltenwerte bearbeiten

Auf die gleiche Weise wie oben können wir ganze Spalten von Excel-Tabellenwerten mit einem einzigen Wert bearbeiten.

/**
Edit Full Column Values
anchor-edit-full-column-values
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    ws.Columns [1].Value = "New Value";
    wb.SaveAs("sample.xlsx");
}
/**
Edit Full Column Values
anchor-edit-full-column-values
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    ws.Columns [1].Value = "New Value";
    wb.SaveAs("sample.xlsx");
}
'''
'''Edit Full Column Values
'''anchor-edit-full-column-values
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	ws.Columns (1).Value = "New Value"
	wb.SaveAs("sample.xlsx")
End Sub
$vbLabelText   $csharpLabel

Was unsere sample.xlsx-Tabelle wie folgt erzeugen wird:

Vor Nach

:---: :-----:

vorher nach


5. Volle Zeile mit dynamischen Werten bearbeiten

Mit IronXL ist es auch möglich, bestimmte Zeilen mit dynamischen Werten zu bearbeiten. Das bedeutet, dass wir eine ganze Zeile bearbeiten können, indem wir jeder Zelle dynamische Werte zuweisen. Schauen wir uns das Beispiel an:

/**
Edit Row Dynamic Values
anchor-edit-full-row-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{

    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    for (int i = 0; i < ws.Columns.Count(); i++)
    {
        ws.Rows [3].Columns [i].Value = "New Value "+i.ToString();
    }        
    wb.SaveAs("sample.xlsx");
}
/**
Edit Row Dynamic Values
anchor-edit-full-row-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{

    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    for (int i = 0; i < ws.Columns.Count(); i++)
    {
        ws.Rows [3].Columns [i].Value = "New Value "+i.ToString();
    }        
    wb.SaveAs("sample.xlsx");
}
'''
'''Edit Row Dynamic Values
'''anchor-edit-full-row-with-dynamic-values
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)

	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	For i As Integer = 0 To ws.Columns.Count() - 1
		ws.Rows (3).Columns (i).Value = "New Value " & i.ToString()
	Next i
	wb.SaveAs("sample.xlsx")
End Sub
$vbLabelText   $csharpLabel

In der Tabelle unten sehen wir die Screenshots der Excel-Tabelle sample.xlsx aus dieser Ausgabe:

Vor Nach

:---: :-----:

before nachher


6. Volle Spalte mit dynamischen Werten bearbeiten

Es ist auch einfach, bestimmte Spalten mit dynamischen Werten zu bearbeiten.

/**
Edit Column Dynamic Values
anchor-edit-full-column-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{

    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    for (int i = 0; i < ws.Rows.Count(); i++)
    {
        if (i == 0)//it is for if our first column is used as a header
            continue;
        ws.Rows [i].Columns [1].Value = "New Value " + i.ToString();
    }
    wb.SaveAs("sample.xlsx");
}
/**
Edit Column Dynamic Values
anchor-edit-full-column-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{

    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    for (int i = 0; i < ws.Rows.Count(); i++)
    {
        if (i == 0)//it is for if our first column is used as a header
            continue;
        ws.Rows [i].Columns [1].Value = "New Value " + i.ToString();
    }
    wb.SaveAs("sample.xlsx");
}
'''
'''Edit Column Dynamic Values
'''anchor-edit-full-column-with-dynamic-values
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)

	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	For i As Integer = 0 To ws.Rows.Count() - 1
		If i = 0 Then 'it is for if our first column is used as a header
			Continue For
		End If
		ws.Rows (i).Columns (1).Value = "New Value " & i.ToString()
	Next i
	wb.SaveAs("sample.xlsx")
End Sub
$vbLabelText   $csharpLabel

Mit den Tabellenergebnissen von sample.xlsx unten:

Vor Nach

:---: :-----:

vorher nach


7. Ersetzen von Tabellenkalkulationswerten

Wenn wir einen beliebigen Wert in einer Excel-Tabelle durch einen aktualisierten Wert ersetzen möchten, können wir die Funktion Replace verwenden. Mit dieser Funktion können wir die Daten von Excel SpreadSheet in jeder gewünschten Situation ersetzen.

7.1. Spezifischen Wert von Complete WorkSheet ersetzen

Um einen spezifischen Wert in einem gesamten Excel-Arbeitsblatt durch einen aktualisierten Wert zu ersetzen, greifen wir einfach auf das Arbeitsblatt ws zu (wie in den obigen Beispielen) und wenden die Replace-Funktion folgendermaßen an.

/**
Replace Cell Values
anchor-replace-specific-value-of-complete-worksheet
**/
ws.Replace("old value", "new value");
/**
Replace Cell Values
anchor-replace-specific-value-of-complete-worksheet
**/
ws.Replace("old value", "new value");
'''
'''Replace Cell Values
'''anchor-replace-specific-value-of-complete-worksheet
'''*
ws.Replace("old value", "new value")
$vbLabelText   $csharpLabel

Diese Funktion wird alten Wert durch neuen Wert in einem gesamten Excel-Arbeitsblatt ersetzen.

Vergessen Sie nicht, die Datei nach jeder Änderung zu speichern, wie in den obigen Beispielen gezeigt.

7.2. Ersetzen Sie die Werte einer bestimmten Zeile

Wenn Sie nur eine bestimmte Zeile und nicht das gesamte Arbeitsblatt ändern möchten, verwenden Sie diesen Code.

ws.Rows [2].Replace("old value", "new value");
ws.Rows [2].Replace("old value", "new value");
ws.Rows (2).Replace("old value", "new value")
$vbLabelText   $csharpLabel

Der obige Code wird old value nur in der Zeile Nummer 2 durch new value ersetzen. Der Rest des WorkSheets bleibt unverändert.

7.3. Ersetzen Sie die Werte des Zeilenbereichs

Wir können auch die Werte innerhalb eines bestimmten Bereichs wie folgt ersetzen:

ws ["From Cell Address : To Cell Address"].Replace("old value", "new value");
ws ["From Cell Address : To Cell Address"].Replace("old value", "new value");
ws ("From Cell Address : To Cell Address").Replace("old value", "new value")
$vbLabelText   $csharpLabel

Angenommen, wir wollen den alten Wert durch einen neuen Wert ersetzen, nur im Bereich von B4 bis E4 der Zeile Nr. 4, dann würden wir es so schreiben:

ws ["B4:E4"].Replace("old value", "new value");
ws ["B4:E4"].Replace("old value", "new value");
ws ("B4:E4").Replace("old value", "new value")
$vbLabelText   $csharpLabel

7.4. Ersetzen Sie die Werte einer bestimmten Spalte

Wir können auch die Werte einer bestimmten Spalte ersetzen, wobei der Rest des Arbeitsblatts unverändert bleibt.

ws.Columns [1].Replace("old value", "new Value")
ws.Columns [1].Replace("old value", "new Value")
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'ws.Columns [1].Replace("old value", "new Value")
$vbLabelText   $csharpLabel

Der obige Code wird alten Wert durch neuen Wert nur für die Spalte Nummer 1 ersetzen.

7.5. Ersetzen Sie die Werte des Spaltenbereichs

Auf die folgende Weise können wir auch die Bereichsfunktion verwenden, um innerhalb eines Bereichs einer bestimmten Spalte zu ersetzen.

 ws ["B5:B10"].Replace("old value", "new value");
 ws ["B5:B10"].Replace("old value", "new value");
ws ("B5:B10").Replace("old value", "new value")
$vbLabelText   $csharpLabel

Der obige Code ersetzt old value durch new value nur innerhalb des Bereichs von B5 bis B10 für Spalte B.


8. Zeile aus Excel-Arbeitsblatt entfernen

IronXL bietet eine sehr einfache Funktion, um eine bestimmte Zeile aus einem Excel-Arbeitsblatt zu entfernen. Schauen wir uns das Beispiel an.

/**
Remove Row
anchor-remove-row-from-excel-worksheet
**/
using IronXL;
static void Main(string [] args)
{ 
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    ws.Rows [3].RemoveRow();
    wb.SaveAs("sample.xlsx");
}
/**
Remove Row
anchor-remove-row-from-excel-worksheet
**/
using IronXL;
static void Main(string [] args)
{ 
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    ws.Rows [3].RemoveRow();
    wb.SaveAs("sample.xlsx");
}
'''
'''Remove Row
'''anchor-remove-row-from-excel-worksheet
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	ws.Rows (3).RemoveRow()
	wb.SaveAs("sample.xlsx")
End Sub
$vbLabelText   $csharpLabel

Der obige Code wird die Zeile Nummer 3 von sample.xlsx wie in der folgenden Tabelle gezeigt entfernen:

Vor Nach

:---: :-----:

vorher nach


9. WorkSheet aus Excel-Datei entfernen

Wenn wir ein komplettes Arbeitsblatt aus einer Excel-Datei entfernen wollen, können wir die folgende Methode verwenden:

/**
Remove Worksheet from File
anchor-remove-worksheet-from-excel-file
**/
wb.RemoveWorkSheet(1); // by sheet indexing
/**
Remove Worksheet from File
anchor-remove-worksheet-from-excel-file
**/
wb.RemoveWorkSheet(1); // by sheet indexing
'''
'''Remove Worksheet from File
'''anchor-remove-worksheet-from-excel-file
'''*
wb.RemoveWorkSheet(1) ' by sheet indexing
$vbLabelText   $csharpLabel

wb ist das Workbook, wie in den obigen Beispielen. Wenn wir ein Arbeitsblatt nach Namen entfernen wollen, dann:

wb.RemoveWorkSheet("Sheet1"); //by sheet name
wb.RemoveWorkSheet("Sheet1"); //by sheet name
wb.RemoveWorkSheet("Sheet1") 'by sheet name
$vbLabelText   $csharpLabel

IronXL ist reich an vielen weiteren Funktionen, mit denen wir leicht jede Art von Bearbeitung und Löschung in Excel SpreadSheets durchführen können. Bitte wenden Sie sich an unser Entwicklungsteam, wenn Sie Fragen zur Verwendung in Ihrem Projekt haben.


Bibliothek Schnellzugriff

IronXL Bibliothek Dokumentation

Entdecken Sie die volle Leistungsfähigkeit der IronXL C# Library mit verschiedenen Funktionen zum Bearbeiten, Löschen, Gestalten und Perfektionieren Ihrer Excel-Arbeitsmappen.

IronXL Bibliothek Dokumentation
Documentation related to 9. WorkSheet aus Excel-Datei entfernen
Chaknith Bin
Software-Ingenieur
Chaknith arbeitet an IronXL und IronBarcode. Er hat tiefgehende Expertise in C# und .NET und hilft, die Software zu verbessern und Kunden zu unterstützen. Seine Erkenntnisse aus Benutzerinteraktionen tragen zu besseren Produkten, Dokumentation und einem insgesamt besseren Erlebnis bei.