Wie man Excel-Bereichsnamen in C# verwaltet

Hinweis zum Hinzufügen eines benannten Bereichs in C#35; mit IronXL

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

Ein benannter Bereich ist ein Zellbereich mit einem einzigartigen Namen. Anstatt auf einen Bereich durch seine Zelladressen (wie A1:B10) zu verweisen, können Sie einem Bereich einen Namen zuweisen, was ihn in Formeln und Funktionen leichter referenzierbar und verständlich macht. Zum Beispiel, wenn Sie einen Bereich "SalesData" nennen, könnten Sie in einer Formel auf ihn wie SUM(SalesData) verweisen, anstatt den Zellbereich direkt anzugeben.

Benannte Bereiche sind besonders nützlich bei der Arbeit mit Excel-Formeln in C#, da sie Ihren Code lesbarer und wartbarer machen. In Kombination mit den leistungsstarken Bereichsauswahlfunktionen von IronXL werden benannte Bereiche zu einem unverzichtbaren Werkzeug für die effiziente Verwaltung von Tabellenkalkulationen.

als-überschrift:2(Schnellstart: Fügen Sie einen benannten Bereich mit IronXL in einer Zeile hinzu)

Definieren Sie einen benannten Bereich mit IronXL mit einem einzigen Methodenaufruf. Wählen Sie Ihren Bereich und wenden Sie die Methode SaveAsNamedRange an.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronXL mit dem NuGet-Paketmanager.

    PM > Install-Package IronXL.Excel

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    new IronXL.WorkBook()
        .DefaultWorkSheet["A1:B2"].SaveAsNamedRange("MyRange", true);
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronXL in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer


Wie füge ich einen benannten Bereich zu meinem Arbeitsblatt hinzu?

Um einen benannten Bereich hinzuzufügen, verwenden Sie die Methode AddNamedRange indem Sie den Namen des benannten Bereichs als Text und das Bereichsobjekt übergeben. Diese Methode ist Teil der umfassenden Arbeitsblattverwaltung von IronXL.

:path=/static-assets/excel/content-code-examples/how-to/named-range-add-named-range.cs
using IronXL;

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Select range
var selectedRange = workSheet["A1:A5"];

// Add named range
workSheet.AddNamedRange("range1", selectedRange);

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

Private workBook As WorkBook = WorkBook.Create()
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Select range
Private selectedRange = workSheet("A1:A5")

' Add named range
workSheet.AddNamedRange("range1", selectedRange)

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

Bei der Erstellung von benannten Bereichen ist es wichtig, die Namenskonventionen von Excel zu befolgen:

  • Die Namen müssen mit einem Buchstaben oder einem Unterstrich beginnen
  • Die Namen dürfen keine Leerzeichen enthalten (verwenden Sie stattdessen Unterstriche)
  • Die Namen dürfen nicht mit Zellreferenzen (wie "A1" oder "R1C1") kollidieren
  • Bei den Namen wird nicht zwischen Groß- und Kleinschreibung unterschieden, aber die Beibehaltung einer einheitlichen Schreibweise verbessert die Lesbarkeit
Excel Name Box zeigt 'range1' mit ausgewählten und hervorgehobenen Zellen A1:A5, roter Pfeil zeigt auf Gitter

Benannte Bereiche können auch für nicht zusammenhängende Auswahlen oder ganze Zeilen/Spalten erstellt werden. Komplexere Bereichsoperationen finden Sie in der Anleitung zur Kombination mehrerer Excel-Bereiche.


Wie kann ich benannte Bereiche aus meiner Arbeitsmappe abrufen?

Welche Methode erhält alle benannten Bereiche auf einmal?

Die Methode GetNamedRanges gibt alle benannten Bereiche im Arbeitsblatt als eine Liste von Zeichenketten zurück. Dies ist besonders nützlich, wenn Sie alle benannten Bereiche in einer Arbeitsmappe prüfen oder dokumentieren müssen, ähnlich wie Sie vorhandene Tabellenkalkulationen laden, um deren Struktur zu analysieren.

:path=/static-assets/excel/content-code-examples/how-to/named-range-retrieve-all-named-range.cs
using IronXL;

WorkBook workBook = WorkBook.Load("addNamedRange.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Get all named range
var namedRangeList = workSheet.GetNamedRanges();
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("addNamedRange.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Get all named range
Private namedRangeList = workSheet.GetNamedRanges()
$vbLabelText   $csharpLabel

Wie finde ich einen bestimmten benannten Bereich anhand des Namens?

Verwenden Sie die Methode FindNamedRange, um den absoluten Verweis des benannten Bereichs abzurufen, zum Beispiel Sheet1!$A$1:$A$5. Die Adressformel kann dann verwendet werden, um auf den benannten Bereich zu verweisen oder den entsprechenden Bereich zum benannten Bereich auszuwählen. Beim Auswählen des Bereichs sollten Sie auf den Namen des Arbeitsblatts achten.

:path=/static-assets/excel/content-code-examples/how-to/named-range-retrieve-specific-named-range.cs
using IronXL;

WorkBook workBook = WorkBook.Load("addNamedRange.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Get named range address
string namedRangeAddress = workSheet.FindNamedRange("range1");

// Select range
var range = workSheet[$"{namedRangeAddress}"];
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("addNamedRange.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Get named range address
Private namedRangeAddress As String = workSheet.FindNamedRange("range1")

' Select range
Private range = workSheet($"{namedRangeAddress}")
$vbLabelText   $csharpLabel

Arbeiten mit benannten Bereichen über mehrere Arbeitsblätter hinweg

Benannte Bereiche können auf Arbeitsmappen- oder Arbeitsblattebene angesiedelt sein. Namen auf Arbeitsmappebene sind von jedem Arbeitsblatt aus zugänglich, während Namen auf Arbeitsblattebene nur innerhalb des jeweiligen Arbeitsblatts zugänglich sind. Diese Unterscheidung ist wichtig für die Verwaltung mehrerer Arbeitsblätter in Ihren Excel-Dateien.

// Example: Accessing named ranges from different worksheets
WorkBook workBook = WorkBook.Load("multisheet.xlsx");
WorkSheet sheet1 = workBook.GetWorkSheet("Sheet1");
WorkSheet sheet2 = workBook.GetWorkSheet("Sheet2");

// Both can access a workbook-level named range
var range1 = sheet1["GlobalData"];
var range2 = sheet2["GlobalData"];  // Same named range
// Example: Accessing named ranges from different worksheets
WorkBook workBook = WorkBook.Load("multisheet.xlsx");
WorkSheet sheet1 = workBook.GetWorkSheet("Sheet1");
WorkSheet sheet2 = workBook.GetWorkSheet("Sheet2");

// Both can access a workbook-level named range
var range1 = sheet1["GlobalData"];
var range2 = sheet2["GlobalData"];  // Same named range
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wie kann ich einen benannten Bereich aus meinem Arbeitsblatt entfernen?

Um den benannten Bereich zu entfernen, verwenden Sie die Methode RemoveNamedRange indem Sie den Namen des benannten Bereichs als Text übergeben. Dies ist wichtig, um saubere, organisierte Arbeitsmappen zu erhalten und Benennungskonflikte bei der Aktualisierung von Tabellenkalkulationsstrukturen zu vermeiden.

:path=/static-assets/excel/content-code-examples/how-to/named-range-remove-named-range.cs
using IronXL;

WorkBook workBook = WorkBook.Load("addNamedRange.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Remove named range
workSheet.RemoveNamedRange("range1");
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("addNamedRange.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Remove named range
workSheet.RemoveNamedRange("range1")
$vbLabelText   $csharpLabel

Erweiterte Szenarien für benannte Bereiche

Verwendung von benannten Bereichen mit Formeln

Benannte Bereiche kommen bei der Verwendung mit Excel-Formeln besonders gut zur Geltung. Sie machen Formeln besser lesbar und leichter zu pflegen. Umfassende Informationen zur Formelverwaltung finden Sie im Leitfaden zu Excel-Formeln in C#.

// Create named ranges for formula use
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Create sample data
workSheet["A1:A5"].Value = new int[] { 10, 20, 30, 40, 50 };
workSheet["B1:B5"].Value = new int[] { 5, 10, 15, 20, 25 };

// Add named ranges
workSheet.AddNamedRange("FirstColumn", workSheet["A1:A5"]);
workSheet.AddNamedRange("SecondColumn", workSheet["B1:B5"]);

// Use named ranges in formulas
workSheet["D1"].Formula = "=SUM(FirstColumn)";
workSheet["D2"].Formula = "=AVERAGE(SecondColumn)";
workSheet["D3"].Formula = "=SUM(FirstColumn) + SUM(SecondColumn)";

// Evaluate formulas
workSheet.EvaluateAll();
// Create named ranges for formula use
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Create sample data
workSheet["A1:A5"].Value = new int[] { 10, 20, 30, 40, 50 };
workSheet["B1:B5"].Value = new int[] { 5, 10, 15, 20, 25 };

// Add named ranges
workSheet.AddNamedRange("FirstColumn", workSheet["A1:A5"]);
workSheet.AddNamedRange("SecondColumn", workSheet["B1:B5"]);

// Use named ranges in formulas
workSheet["D1"].Formula = "=SUM(FirstColumn)";
workSheet["D2"].Formula = "=AVERAGE(SecondColumn)";
workSheet["D3"].Formula = "=SUM(FirstColumn) + SUM(SecondColumn)";

// Evaluate formulas
workSheet.EvaluateAll();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dynamische benannte Bereiche

IronXL unterstützt zwar nicht direkt die dynamischen benannten Bereiche von Excel (mit OFFSET- oder INDEX-Funktionen), aber Sie können benannte Bereiche auf der Grundlage von Datenänderungen programmatisch aktualisieren:

// Update named range based on data size
WorkBook workBook = WorkBook.Load("dynamicData.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Find last row with data
int lastRow = 1;
while (!workSheet[$"A{lastRow}"].IsEmpty)
{
    lastRow++;
}
lastRow--; // Adjust to actual last row

// Remove old range and add new one
workSheet.RemoveNamedRange("DataRange");
workSheet.AddNamedRange("DataRange", workSheet[$"A1:A{lastRow}"]);
// Update named range based on data size
WorkBook workBook = WorkBook.Load("dynamicData.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Find last row with data
int lastRow = 1;
while (!workSheet[$"A{lastRow}"].IsEmpty)
{
    lastRow++;
}
lastRow--; // Adjust to actual last row

// Remove old range and add new one
workSheet.RemoveNamedRange("DataRange");
workSheet.AddNamedRange("DataRange", workSheet[$"A1:A{lastRow}"]);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Benannte Bereiche für die Datenvalidierung

Benannte Bereiche eignen sich hervorragend für die Erstellung von Datenvalidierungslisten und -einschränkungen. In Kombination mit Excels Datenüberprüfungsfunktionen bieten sie eine leistungsstarke Möglichkeit, die Datenintegrität zu gewährleisten:

// Create a named range for validation list
workSheet["F1:F5"].Value = new string[] { "Option1", "Option2", "Option3", "Option4", "Option5" };
workSheet.AddNamedRange("ValidationList", workSheet["F1:F5"]);

// Apply to data validation (conceptual example)
// The actual validation would reference "ValidationList"
// Create a named range for validation list
workSheet["F1:F5"].Value = new string[] { "Option1", "Option2", "Option3", "Option4", "Option5" };
workSheet.AddNamedRange("ValidationList", workSheet["F1:F5"]);

// Apply to data validation (conceptual example)
// The actual validation would reference "ValidationList"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Best Practices und Tipps zur Leistung

  1. Benennungskonventionen: Verwenden Sie beschreibende, konsistente Namen, die den Zweck der Daten angeben (z. B. Verkauf_Q1_2024 statt "Data1")
  2. Umfangsmanagement: Achten Sie auf den Umfang von Arbeitsmappen und Arbeitsblättern, um Konflikte zu vermeiden
  3. Dokumentation: Führen Sie eine Liste der benannten Bereiche und ihrer Zwecke, insbesondere in komplexen Arbeitsmappen
  4. Leistung: Benannte Bereiche haben minimale Auswirkungen auf die Leistung, aber vermeiden Sie es, Tausende von winzigen benannten Bereichen zu erstellen
  5. Aktualisierungen: Wenn sich Datenstrukturen ändern, aktualisieren oder entfernen Sie die entsprechenden benannten Bereiche, um die Genauigkeit zu erhalten

Für fortgeschrittene Excel-Operationen und Leistungsoptimierung lesen Sie bitte die komplette IronXL-Dokumentation oder informieren Sie sich über spezielle Funktionen wie Sortieren von Excel-Bereichen oder Arbeiten mit Excel-Tabellen.

Häufig gestellte Fragen

Wie erstelle ich einen benannten Bereich in Excel mit C#?

Um einen benannten Bereich in Excel unter Verwendung von C# mit IronXL zu erstellen, wählen Sie Ihren Zielbereich mit dem Worksheet-Indexer aus (z. B. workSheet["A1:B2"]) und rufen dann die SaveAsNamedRange-Methode mit Ihrem gewünschten Namen auf. Sie können auch die AddNamedRange-Methode verwenden, indem Sie den Namen als Text und das Bereichsobjekt übergeben.

Was sind die Benennungsregeln für benannte Bereiche in Excel?

Wenn Sie IronXL verwenden, um benannte Bereiche zu erstellen, halten Sie sich an die folgenden Excel-Namenskonventionen: Namen müssen mit einem Buchstaben oder einem Unterstrich beginnen, dürfen keine Leerzeichen enthalten (verwenden Sie stattdessen Unterstriche), dürfen nicht mit Zellbezügen wie A1" kollidieren und sind nicht von Groß- und Kleinschreibung abhängig. IronXL setzt diese Regeln automatisch durch, wenn Sie benannte Bereiche erstellen.

Kann ich alle benannten Bereiche aus einer Excel-Arbeitsmappe programmatisch abrufen?

Ja, IronXL bietet die GetNamedRanges-Methode, die alle benannten Bereiche im Arbeitsblatt als eine Liste von Zeichenketten zurückgibt. Diese Funktion ist besonders nützlich bei der Überprüfung oder Dokumentation von benannten Bereichen in bestehenden Arbeitsmappen, die mit IronXL geladen wurden.

Wie können benannte Bereiche meine Excel-Formeln in C# verbessern?

Benannte Bereiche machen Excel-Formeln bei der Arbeit mit IronXL besser lesbar und wartbar. Anstelle von Zellreferenzen wie A1:B10" können Sie in Ihren Formeln beschreibende Namen wie SalesData" verwenden, wodurch Ihr C#-Code klarer und leichter verständlich wird.

Ist es möglich, benannte Bereiche für nicht zusammenhängende Zellen zu erstellen?

Ja, IronXL unterstützt die Erstellung benannter Bereiche für nicht zusammenhängende Auswahlen und ganze Zeilen oder Spalten. Die umfassenden Funktionen der Bibliothek zur Verwaltung von Arbeitsblättern ermöglichen es Ihnen, komplexe benannte Bereiche zu definieren, die über einfache rechteckige Auswahlen hinausgehen.

Wie kann ich am schnellsten einen benannten Bereich in einer einzigen Codezeile hinzufügen?

Mit IronXL können Sie einen benannten Bereich in einer einzigen Zeile erstellen: new IronXL.WorkBook().DefaultWorkSheet["A1:B2"].SaveAsNamedRange("MyRange", true). Dies veranschaulicht die optimierte API von IronXL für die Manipulation von Excel.

Wie kann ich benannte Bereiche aus einem Excel-Arbeitsblatt entfernen?

IronXL bietet die RemoveNamedRange-Methode, mit der Sie benannte Bereiche aus Ihrem Arbeitsblatt einfach löschen können. Diese Methode ist Teil der vollständigen Verwaltungsfunktionen der Bibliothek für benannte Bereiche, mit denen Sie benannte Bereiche programmatisch hinzufügen, abrufen und entfernen können.

Chaknith Bin
Software Ingenieur
Chaknith arbeitet an IronXL und IronBarcode. Er hat umfassende Expertise in C# und .NET und hilft, die Software zu verbessern und Kunden zu unterstützen. Seine Einblicke aus Benutzerinteraktionen tragen zu besseren Produkten, Dokumentationen und einem insgesamt besseren Erlebnis bei.
Bereit anzufangen?
Nuget Downloads 1,765,830 | Version: 2025.12 gerade veröffentlicht