Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Wie man Excel-Bereiche in C# verwaltet

Das programmatische Arbeiten mit Excel-Dateien kann die Effizienz und Automatisierungsmöglichkeiten Ihrer C#-Anwendungen erheblich verbessern. Egal, ob Sie Berichte erstellen, Daten verarbeiten oder komplexe Tabellen dynamisch erstellen, die Beherrschung der Manipulation von Excel-Dateien ist entscheidend. In diesem Tutorial konzentrieren wir uns darauf, mit Excel-Bereichen unter Verwendung von IronXL zu arbeiten. We'll cover how to write, read, and manipulate ranges within an Excel file.

Wie man Excel-Bereiche in C# liest

  1. Installieren Sie die IronXL-Bibliothek zur Handhabung von Excel-Dateien.
  2. Laden Sie die Arbeitsmappe und geben Sie das Arbeitsblatt an.
  3. Wählen Sie den zu lesenden Zellbereich aus.
  4. Extrahieren und lesen Sie Daten aus dem angegebenen Bereich.

Was ist IronXL?

IronXL ist eine umfassende Bibliothek für C#, die das Arbeiten mit Excel-Dateien vereinfacht und eine Reihe von Funktionen für nahtlose Integration und Manipulation von Tabellendaten bietet. Its capabilities include reading, writing, and modifying Excel files without requiring Microsoft Excel installation, enabling cross-platform compatibility.

IronXL facilitates the extraction of data from specific cells, ranges, or entire worksheets, along with advanced functionalities such as formatting, styling, and conditional formatting. Mit Unterstützung für Berechnungen, Formeln und statistische Analysen befähigt IronXL Entwickler, Excel-Operationen effizient programmatisch zu bearbeiten, was es zu einem unverzichtbaren Werkzeug macht, um datenorientierte Aufgaben innerhalb von C#-Anwendungen zu automatisieren.

Erste Schritte mit Excel-Zellenbereichen in C#

Zunächst müssen wir die IronXL-Bibliothek in unserer Anwendung installieren.

Installiere das IronXL NuGet-Paket

Sie können IronXL über den NuGet-Paketmanager mit folgendem Befehl installieren:

Install-Package IronXL.Excel

Der obige Befehl wird IronXL mit allen seinen Abhängigkeiten installieren.

Wie man Excel-Bereiche in C# verwaltet: Abbildung 1

Namespace hinzufügen

Fügen Sie den folgenden Namespace am Anfang der Program.cs-Klasse oder an einer beliebigen Stelle hinzu, an der Sie IronXL-Methoden verwenden möchten.

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

Excel-Arbeitsmappe laden

Der allererste Schritt ist das Laden der Excel-Arbeitsmappe. Der folgende Code lädt die Excel-Arbeitsmappe in unsere Anwendung.

static void Main(string[] args)
{
    // Load an existing Excel workbook
    var workbook = WorkBook.Load("test_excel.xlsx");

    // Retrieve the specified worksheet from the workbook
    var sheet = workbook.GetWorkSheet("Sheet1");
}
static void Main(string[] args)
{
    // Load an existing Excel workbook
    var workbook = WorkBook.Load("test_excel.xlsx");

    // Retrieve the specified worksheet from the workbook
    var sheet = workbook.GetWorkSheet("Sheet1");
}
Shared Sub Main(ByVal args() As String)
	' Load an existing Excel workbook
	Dim workbook = WorkBook.Load("test_excel.xlsx")

	' Retrieve the specified worksheet from the workbook
	Dim sheet = workbook.GetWorkSheet("Sheet1")
End Sub
$vbLabelText   $csharpLabel

Die erste Zeile lädt eine vorhandene Excel-Arbeitsmappe aus der Datei namens "test_excel.xlsx". Die zweite Zeile ruft das Arbeitsblatt mit dem Namen "Sheet1" aus der geladenen Arbeitsmappe ab.

Ich werde die folgende Excel-Datei im Verlauf dieses Tutorials verwenden.

Wie man Excel-Bereiche in C# verwaltet: Abbildung 2

Daten aus einem Bereich lesen

Lassen Sie uns nun Daten aus den angegebenen Zellbereichen lesen.

// Define a range from cell A2 to G10 in the worksheet
var range = sheet["A2:G10"];

// Iterate over each cell in the range and output its value
foreach (var item in range)
{
    Console.WriteLine(item);
}
// Define a range from cell A2 to G10 in the worksheet
var range = sheet["A2:G10"];

// Iterate over each cell in the range and output its value
foreach (var item in range)
{
    Console.WriteLine(item);
}
' Define a range from cell A2 to G10 in the worksheet
Dim range = sheet("A2:G10")

' Iterate over each cell in the range and output its value
For Each item In range
	Console.WriteLine(item)
Next item
$vbLabelText   $csharpLabel

Die erste Zeile wählt eine bestimmte Bereichsadresse (A2 bis G10) im Arbeitsblatt aus, die es Ihnen ermöglicht, mit mehreren Excel-Zellen gleichzeitig zu arbeiten. Die foreach (var item in range)-Schleife iteriert über jede Zelle innerhalb dieses Zellbereichs, was eine effiziente Datenverarbeitung ermöglicht.

Durch die Verwendung von Console.WriteLine(item); druckt der Code den Wert jeder Zelle auf die Konsole, was es einfach macht, die Inhalte des Bereichs zu überprüfen. Dieser Ansatz vereinfacht die Datenverarbeitung und verbessert die Lesbarkeit des Codes.

Excel-Formeln auf einen Bereich anwenden

Lassen Sie uns einen spezifischen Bereich auswählen und einige Excel-Formeln implementieren.

// Define a range from cell F2 to F42 for statistical analysis
var range = sheet["F2:F42"];

// Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}");

// Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}");

// Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {(int)range.Avg()}");
// Define a range from cell F2 to F42 for statistical analysis
var range = sheet["F2:F42"];

// Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}");

// Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}");

// Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {(int)range.Avg()}");
Imports System

' Define a range from cell F2 to F42 for statistical analysis
Dim range = sheet("F2:F42")

' Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}")

' Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}")

' Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {CInt(Math.Truncate(range.Avg()))}")
$vbLabelText   $csharpLabel

Der Code var range = sheet["F2:F42"]; wählt einen Zellbereich von F2 bis F42, was eine statistische Analyse von Altersdaten erleichtert. Durch die Verwendung von range.Min() und range.Max() berechnet er effizient die minimalen und maximalen Alterswerte innerhalb des angegebenen Bereichs, was demografische Einblicke ermöglicht.

Zusätzlich berechnet range.Avg() das Durchschnittsalter, was wertvolle statistische Metriken für die Dateninterpretation bietet. Dieser Ansatz vereinfacht Aufgaben in der Datenanalyse und bietet schnellen Zugriff auf wesentliche statistische Informationen für fundierte Entscheidungen.

Wie man Excel-Bereiche in C# verwaltet: Abbildung 3

Daten aus einer Einzelzelle lesen

Lassen Sie uns Daten aus einer einzelnen Zelle lesen.

// Retrieve the value from cell B2 in the worksheet
var read_from_single_cell = sheet["B2"];

// Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
// Retrieve the value from cell B2 in the worksheet
var read_from_single_cell = sheet["B2"];

// Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
' Retrieve the value from cell B2 in the worksheet
Dim read_from_single_cell = sheet("B2")

' Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}")
$vbLabelText   $csharpLabel

Der Code var read_from_single_cell = sheet["B2"]; ruft den in Zelle B2 gespeicherten Wert aus dem Arbeitsblatt ab. Mit diesem Ansatz können Sie einfach auf spezifische Zellwerte innerhalb der Excel-Datei zugreifen.

Mit Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}"); druckt der Code den abgerufenen Wert für referenzierte Zellen auf die Konsole, was die Datenüberprüfung und Fehlerbehebung erleichtert. Dies vereinfacht den Prozess des Abfragens und Anzeigens von individuellen Zellwerten aus Excel-Dateien.

Wie man Excel-Bereiche in C# verwaltet: Abbildung 4

Daten aus einer ganzen Spalte lesen

Lassen Sie uns Daten aus einer ganzen Spalte mit Index lesen.

// Retrieve values from the column at index 2 (C column) 
var columnValues = sheet.GetColumn(2); // 2 is column index

// Iterate over each value in the column and output it
foreach (var columnValue in columnValues)
{
    Console.WriteLine(columnValue);
}
// Retrieve values from the column at index 2 (C column) 
var columnValues = sheet.GetColumn(2); // 2 is column index

// Iterate over each value in the column and output it
foreach (var columnValue in columnValues)
{
    Console.WriteLine(columnValue);
}
' Retrieve values from the column at index 2 (C column) 
Dim columnValues = sheet.GetColumn(2) ' 2 is column index

' Iterate over each value in the column and output it
For Each columnValue In columnValues
	Console.WriteLine(columnValue)
Next columnValue
$vbLabelText   $csharpLabel

Der Code var columnValues = sheet.GetColumn(2); ruft alle Werte aus der Spalte ab, die sich an Index 2 (Spalte C) im Arbeitsblatt befindet. Dies ermöglicht einen effizienten Zugriff auf alle Werte in einer bestimmten Spalte des Excel-Blattes.

Durch die foreach-Schleife, die über columnValues iteriert, wird jeder Wert in der Spalte mit Console.WriteLine(columnValue); auf die Konsole gedruckt. Dieser Ansatz erleichtert die Verarbeitung und Anzeige von Spaltenwerten aus Excel-Dateien, was Aufgaben in der Datenanalyse vereinfacht.

Wie man Excel-Bereiche in C# verwaltet: Abbildung 5

Alternativ können wir auch Daten aus einer Spalte mit einem Spaltennamen statt eines Indexes lesen. In diesem Beispiel wird IronPDF verwendet, um HTML-Inhalte in ein PDF-Dokument zu rendern, das anschließend am angegebenen Ort gespeichert wird.

// Retrieve values from the column with name "C"
var columnValues = sheet.GetColumn("C");
// Retrieve values from the column with name "C"
var columnValues = sheet.GetColumn("C");
' Retrieve values from the column with name "C"
Dim columnValues = sheet.GetColumn("C")
$vbLabelText   $csharpLabel

Auf diese Weise können wir mehrere Spalten angeben.

Daten aus einer ganzen Zeile lesen

Lassen Sie uns Daten aus der ganzen Zeile mit Zeilennummern lesen.

// Retrieve values from the row at index 1 (Row 2)
var rowValues = sheet.GetRow(1); // 1 is row index

// Iterate over each value in the row and output it
foreach (var rowValue in rowValues)
{
    Console.Write(rowValue + "  ");
}
// Retrieve values from the row at index 1 (Row 2)
var rowValues = sheet.GetRow(1); // 1 is row index

// Iterate over each value in the row and output it
foreach (var rowValue in rowValues)
{
    Console.Write(rowValue + "  ");
}
' Retrieve values from the row at index 1 (Row 2)
Dim rowValues = sheet.GetRow(1) ' 1 is row index

' Iterate over each value in the row and output it
For Each rowValue In rowValues
	Console.Write(rowValue & "  ")
Next rowValue
$vbLabelText   $csharpLabel

Der Code var rowValues = sheet.GetRow(1); ruft alle Werte aus einer einzelnen Zeile ab, die sich an Index 1 (Zeile 2) im Arbeitsblatt befindet, was einen effizienten Zugriff auf zeilenspezifische Daten ermöglicht. Durch die foreach-Schleife, die über rowValues iteriert, wird jeder Wert in der Zeile mit Console.Write(rowValue + " "); auf die Konsole gedruckt.

Dieser Ansatz vereinfacht die Extraktion und Anzeige von Zeilendaten aus Excel-Dateien, was Aufgaben in der Datenanalyse und Berichterstellung hilft. Auf diese Weise können wir Werte aus mehreren Zellen ohne Bereichsspezifikation lesen.

Wie man Excel-Bereiche in C# verwaltet: Abbildung 6

Daten in eine Zelle oder einen Bereich schreiben

Wir können Daten sowohl in Zellen als auch in Bereiche schreiben. Zunächst werden wir Daten in einen Bereich schreiben.

// Select a range from D2 to D14 for modification
var range = sheet["D2:D14"];

// Set the value for each cell in the range
range.Value = "Prefer Not to Say"; // Change Gender Value

// Save the modified workbook to persist changes
workbook.Save();
// Select a range from D2 to D14 for modification
var range = sheet["D2:D14"];

// Set the value for each cell in the range
range.Value = "Prefer Not to Say"; // Change Gender Value

// Save the modified workbook to persist changes
workbook.Save();
' Select a range from D2 to D14 for modification
Dim range = sheet("D2:D14")

' Set the value for each cell in the range
range.Value = "Prefer Not to Say" ' Change Gender Value

' Save the modified workbook to persist changes
workbook.Save()
$vbLabelText   $csharpLabel

Der Code var range = sheet["D2:D14"]; wählt einen Bereich von D2 bis D14, was eine Massenänderung von Daten ermöglicht. Durch das Setzen von range.Value auf "Prefer Not to Say" aktualisiert er effizient den Geschlechtswert für jede Zelle im angegebenen Bereich, wodurch sich wiederholende Aufgaben minimiert werden.

Der nachfolgende workbook.Save();-Befehl stellt die persistente Speicherung dieser Änderungen sicher, was Datenkonsistenz und Integrität bewahrt. Dieser Ansatz vereinfacht Batch-Updates und stellt Einheitlichkeit über mehrere Zellen sicher, was die Effizienz im Datenmanagement erhöht.

Nun, lassen Sie uns Daten in eine bestimmte Zelle schreiben.

// Set the value for cell B2
sheet["B2"].Value = "John";

// Save the workbook to persist the changes
workbook.Save();
// Set the value for cell B2
sheet["B2"].Value = "John";

// Save the workbook to persist the changes
workbook.Save();
' Set the value for cell B2
sheet("B2").Value = "John"

' Save the workbook to persist the changes
workbook.Save()
$vbLabelText   $csharpLabel

Der Code sheet["B2"].Value = "John"; weist direkt den Wert "John" der Zelle B2 im Excel-Arbeitsblatt zu und bietet eine präzise und direkte Methode zum Aktualisieren von spezifischen Zellwerten. Dieser Ansatz optimiert den Prozess, einzelne Zellinhalte zu ändern, und verbessert die Lesbarkeit und Effizienz des Codes.

Wie man Excel-Bereiche in C#: Abbildung 7 - C# Excel-Bereich verwaltet.

Abschluss

Zusammenfassend lässt sich sagen, dass die Beherrschung von Excel-Bereichsoperationen in C# mit IronXL die Effizienz und Automatisierungsmöglichkeiten von Anwendungen erheblich steigert, indem Aufgaben wie Datenverarbeitung, Berichterstellung und dynamische Tabellenkalkulationserstellung erleichtert werden.

Mit den leistungsstarken Funktionen von IronXL zum Lesen, Schreiben und Manipulieren von Excel-Dateien können Entwickler Prozesse der Datenverarbeitung optimieren und von erweiterten Funktionen wie Formeln, Formatierung und statistischer Analyse profitieren. Zusätzlich bietet IronXL eine kostenlose Testversion, die Flexibilität und Skalierbarkeit für verschiedene Projektanforderungen gewährleistet.

Häufig gestellte Fragen

Wie kann ich mit der Manipulation von Excel-Bereichen in C# beginnen?

Um mit der Manipulation von Excel-Bereichen in C# zu beginnen, installieren Sie die IronXL-Bibliothek über den NuGet Package Manager mit dem Befehl: Install-Package IronXL.Excel. Dann können Sie damit beginnen, Excel-Arbeitsmappen zu laden und mit Bereichen unter Verwendung der umfassenden API von IronXL zu arbeiten.

Wie lade ich eine Excel-Arbeitsmappe mit IronXL?

Sie können eine Excel-Arbeitsmappe in IronXL mit der Methode WorkBook.Load laden, indem Sie den Dateinamen als Argument übergeben, zum Beispiel: var workbook = WorkBook.Load('test_excel.xlsx');.

Welche Methoden stehen zur Verfügung, um einen bestimmten Zellbereich in IronXL zu lesen?

In IronXL können Sie einen bestimmten Zellbereich lesen, indem Sie den Bereich mit Syntax wie sheet['A2:G10'] definieren und darüber iterieren, um auf den Wert jeder Zelle zuzugreifen.

Wie kann ich eine statistische Analyse von Daten innerhalb eines Excel-Bereichs durchführen?

Mit IronXL können Sie eine statistische Analyse durchführen, indem Sie einen Bereich auswählen und Methoden wie range.Min(), range.Max() und range.Avg() anwenden, um den minimalen, maximalen und durchschnittlichen Wert zu berechnen.

Wie ist der Vorgang, um Daten in eine bestimmte Zelle mit IronXL zu schreiben?

Um Daten in eine bestimmte Zelle in IronXL zu schreiben, weisen Sie der Zelle direkt einen Wert zu, zum Beispiel: sheet['B2'].Value = 'John';, und speichern Sie dann die Arbeitsmappe, um Änderungen zu übernehmen.

Kann ich eine ganze Spalte von Daten lesen, ohne einen Bereich in IronXL anzugeben?

Ja, IronXL ermöglicht es Ihnen, eine ganze Spalte mit sheet.GetColumn(index) oder sheet.GetColumn('C') zu lesen, sodass Sie Daten entweder mit einem Index oder einem Spaltennamen abrufen können.

Wie extrahiere ich Daten aus einer ganzen Zeile mit IronXL?

Um Daten aus einer ganzen Zeile in IronXL zu extrahieren, verwenden Sie sheet.GetRow(index) und iterieren Sie über die abgerufenen Werte, um auf die Daten zuzugreifen.

Welche erweiterten Funktionen bietet IronXL zur Excel-Manipulation?

IronXL bietet erweiterte Funktionen wie Formatierung, Styling, bedingte Formatierung und Unterstützung für Berechnungen und Formeln, um die Manipulationsfähigkeiten von Excel-Dateien innerhalb von C#-Anwendungen zu verbessern.

Ist es möglich, IronXL vor dem Kauf auszuprobieren?

Ja, IronXL bietet eine kostenlose Testversion an, die es Entwicklern ermöglicht, die Funktionen zu erkunden und ihre Eignung für ihre Projekte ohne anfängliche Kosten zu bestimmen.

Wie kann IronXL die Automatisierung in C#-Anwendungen verbessern?

IronXL verbessert die Automatisierung in C#-Anwendungen, indem es die nahtlose Manipulation von Excel-Dateien programmatisch ermöglicht, was für Aufgaben wie Datenverarbeitung, Berichtsgenerierung und dynamische Erstellung von Arbeitsblättern wesentlich ist, alles ohne die Installation von Microsoft Excel.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen