Excel .NET-Funktionen schreiben

Chaknith Bin
Chaknith Bin
17. Juni 2020
Aktualisiert 10. Dezember 2024
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

In vielen C#-Anwendungsprojekten müssen wir Dateien aktualisieren und neue Daten programmatisch in Excel-Tabellen schreiben. Excel .NET-Funktionen können manchmal kompliziert sein, aber mit der IronXL-Bibliothek ist diese Aufgabe ganz einfach und ermöglicht die Arbeit mit Excel-Kalkulationstabellen in jedem Format. Keine umfangreichen Codezeilen, nur Zugriff auf die spezifischen Zellen und die von Ihnen zugewiesenen Werte.

Legen Sie los mit IronXL

Beginnen Sie noch heute mit der Verwendung von IronXL in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer


Zugriff auf Excel-Dateien

Wir beginnen mit dem Zugriff auf die Excel-Datei, in die wir die Daten schreiben wollen. Öffnen wir die Excel-Datei in unserem Projekt, und öffnen Sie dann das entsprechende Arbeitsblatt mit dem folgenden Code.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-load-file.cs
// Load Excel file in the project
WorkBook workBook = WorkBook.Load("path");
' Load Excel file in the project
Dim workBook As WorkBook = WorkBook.Load("path")
$vbLabelText   $csharpLabel

Dadurch wird die oben angegebene Excel-Datei geöffnet. Als nächstes wird das Arbeitsblatt.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-get-sheet.cs
// Open Excel WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
' Open Excel WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
$vbLabelText   $csharpLabel

Das Excel-Arbeitsblatt wird in workSheet geöffnet und wir können es verwenden, um jegliche Art von Daten in eine Excel-Datei zu schreiben. Erfahren Sie mehr darüber, wie Sie Excel-Dateitypen laden und Arbeitsblätter auf unterschiedliche Weise über die Beispiele im Link aufrufen können. Hinweis: Vergessen Sie nicht, die Referenz von IronXL in Ihr Projekt einzufügen und die Bibliothek mit Using IronXL zu importieren.


Wert in bestimmte Zelle schreiben

Wir können in eine Excel-Datei auf viele verschiedene Methoden schreiben, aber der grundlegende Ansatz ist die Verwendung von Excel Cell. Zu diesem Zweck kann auf eine beliebige Zelle des geöffneten Excel-Arbeitsblatts zugegriffen und ein Wert in diese Zelle geschrieben werden, wie folgt:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell.cs
workSheet["Cell Address"].Value="Assign the Value";
workSheet("Cell Address").Value="Assign the Value"
$vbLabelText   $csharpLabel

Hier ist ein Beispiel für die Verwendung der oben genannten Funktion in einer Excel-Zelle in unserem C#-Projekt zu schreiben.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell-full.cs
using IronXL;

// Load Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Access A1 cell and write the value
workSheet["A1"].Value = "new value";

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Access A1 cell and write the value
Private workSheet("A1").Value = "new value"

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Dieser Code wird den Wert new value in die Zelle A1 des Arbeitsblatts Sheet1 in der Excel-Datei sample.xlsx schreiben. Auf die gleiche Weise können wir Werte in jede beliebige Zelladresse einer Excel-Datei einfügen. Hinweis: Vergessen Sie nicht, die Excel-Datei zu speichern, nachdem Sie neue Werte in das Arbeitsblatt geschrieben haben, wie im obigen Beispiel gezeigt.

Erzwingen Sie die Zuweisung des exakten Wertes

Beim Einstellen der Eigenschaft Value versucht IronXL, sie in den entsprechenden Werttyp zu konvertieren. Manchmal ist diese Auswertung unerwünscht, da der Benutzer der Zelle den exakten Wert und nicht den umgewandelten Wert zuweisen möchte. Dies geschieht, indem man den Wert als String zuweist. Dies ist möglich, indem Sie in Excel ein Hochkomma vor einen Zellwert setzen. In IronXL verwenden Sie einfach StringValue anstelle von Value, um dasselbe zu erreichen.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-stringvalue.cs
// Assign value as string
workSheet["A1"].StringValue = "4402-12";
' Assign value as string
workSheet("A1").StringValue = "4402-12"
$vbLabelText   $csharpLabel

Statische Werte in einen Bereich schreiben

Wir können neue Werte in mehrere Zellen, die als Bereich bezeichnet werden, wie folgt schreiben:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell-range.cs
workSheet["From Cell Address:To Cell Address"].Value = "New Value";
workSheet("From Cell Address:To Cell Address").Value = "New Value"
$vbLabelText   $csharpLabel

Auf diese Weise geben wir den Bereich der Zellen From bis To an, in den die Daten geschrieben werden. Danach wird New Value in alle Zellen geschrieben, die in diesem Bereich liegen. Um mehr über C# Excel Range zu verstehen, schauen Sie sich die Beispiele hier an.

Anhand des folgenden Beispiels wollen wir sehen, wie man einen Bereich in Aktion schreibt.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell-range-full.cs
using IronXL;

// Load Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify range row wise and write new value
workSheet["B2:B9"].Value = "new value";

// Specify range column wise and write new value
workSheet["C3:C7"].Value = "new value";

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Specify range row wise and write new value
Private workSheet("B2:B9").Value = "new value"

' Specify range column wise and write new value
Private workSheet("C3:C7").Value = "new value"

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Dieser Code wird neuer Wert von B2 bis B9 (Zeilenbereich) und von C3 bis C7 (Spaltenbereich) des Arbeitsblatts sheet1 der Excel-Datei sample.xlsx schreiben. Sie verwendet statische Werte für die Excel-Zellen.


Dynamische Werte in einen Bereich schreiben

Wir können auch dynamische Werte zu einem Bereich hinzufügen, wie unten gezeigt.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-dynamic-value.cs
using IronXL;

// Load Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify range in which we want to write the values
for (int i = 2; i <= 7; i++)
{
    // Write the Dynamic value in one row
    workSheet["B" + i].Value = "Value" + i;

    // Write the Dynamic value in another row
    workSheet["D" + i].Value = "Value" + i;
}

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Specify range in which we want to write the values
For i As Integer = 2 To 7
	' Write the Dynamic value in one row
	workSheet("B" & i).Value = "Value" & i

	' Write the Dynamic value in another row
	workSheet("D" & i).Value = "Value" & i
Next i

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Der obige Code schreibt dynamische Werte in die Spalten B und D von 2 bis 7 in die Excel-Datei sample.xlsx. Wir können das Ergebnis des Codes in sample.xlsx sehen:

1excel related to Dynamische Werte in einen Bereich schreiben

Excel-Zellenwert ersetzen

Mit IronXL können wir einfach einen neuen Wert schreiben, um den alten Wert zu ersetzen, indem wir die Replace()-Funktion wie folgt verwenden:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace.cs
workSheet.Replace("old value", "new value");
workSheet.Replace("old value", "new value")
$vbLabelText   $csharpLabel

Die obenstehende Funktion wird neuer Wert schreiben und damit den alten Wert im gesamten Excel-Arbeitsblatt überschreiben.

Zellenwert in bestimmter Zeile ersetzen

Wenn wir einen neuen Wert nur in eine bestimmte Zeile schreiben wollen, kann dies wie folgt geschehen:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-row.cs
workSheet.Rows[RowIndex].Replace("old value", "new value");
workSheet.Rows(RowIndex).Replace("old value", "new value")
$vbLabelText   $csharpLabel

Dies wird den neuen Wert über den alten Wert nur im angegebenen Zeilenindex schreiben.

Zellenwert in bestimmter Spalte ersetzen

Auf die gleiche Weise, wenn wir new value über den old value in einer bestimmten Spalte schreiben möchten, kann dies wie folgt durchgeführt werden:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-column.cs
workSheet.Columns[ColumnIndex].Replace("old value", "new Value");
workSheet.Columns(ColumnIndex).Replace("old value", "new Value")
$vbLabelText   $csharpLabel

Der obige Code wird new value schreiben, um den old value zu ersetzen, jedoch nur im angegebenen Spaltenindex. Der Rest des WorkSheets bleibt unverändert.

Zellenwert in einem bestimmten Bereich ersetzen

IronXL bietet auch eine Möglichkeit, new value zu schreiben und den old value nur in einem bestimmten Bereich zu ersetzen.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-range.cs
workSheet["From Cell Address : To Cell Address"].Replace("old value", "new value");
workSheet("From Cell Address : To Cell Address").Replace("old value", "new value")
$vbLabelText   $csharpLabel

Dies wird neuer Wert über alter Wert schreiben, nur in den Zellen, die im angegebenen Bereich liegen.

Sehen wir uns ein Beispiel dafür an, wie man alle oben genannten Funktionen verwendet, um neue Werte zu schreiben und alte Werte in einem Excel-Arbeitsblatt zu ersetzen.

Beispiel für alle Funktionen

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-full.cs
using IronXL;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Write new above old in complete WorkSheet
workSheet.Replace("old", "new");

// Write new above old just in row no 6 of WorkSheet
workSheet.Rows[5].Replace("old", "new");

// Write new above old just in column no 5 of WorkSheet
workSheet.Columns[4].Replace("old", "new");

// Write new above old just from A5 to H5 of WorkSheet
workSheet["A5:H5"].Replace("old", "new");

workBook.SaveAs("sample.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Write new above old in complete WorkSheet
workSheet.Replace("old", "new")

' Write new above old just in row no 6 of WorkSheet
workSheet.Rows(5).Replace("old", "new")

' Write new above old just in column no 5 of WorkSheet
workSheet.Columns(4).Replace("old", "new")

' Write new above old just from A5 to H5 of WorkSheet
workSheet("A5:H5").Replace("old", "new")

workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Weitere Informationen darüber, wie man Excel .NET-Anwendungen schreibt und mehr, finden Sie in unserem vollständigen Tutorial zum Öffnen und Schreiben von Excel-Dateien mit C#.


Tutorial Schnellzugriff

API-Referenz lesen

Lesen Sie die IronXL-Dokumentation mit Listen aller Funktionen, Features, Namespaces, Klassen und Enums, die Ihnen in der Bibliothek zur Verfügung stehen.

API-Referenz lesen
Documentation related to Tutorial Schnellzugriff
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.