Wie man mit Datenvalidierung in .NET arbeitet

Wie man mit Datenvalidierung in .NET arbeitet

Aspose.Cells FOSS for .NET enables you to add data validation rules to cell ranges through Worksheet.Validations (a) Die Kommission hat die ValidationCollection) Anruf Add(CellArea) Erstellung einer Validation Objekt und seine Einstellung Type Verwendung von ValidationType.Unterstützte Arten sind: List, Decimal,und . Custom.Installieren mit dotnet add package Aspose.Cells_FOSS.

Schritt für Schritte

Schritt 1: Installieren des Pakets

dotnet add package Aspose.Cells_FOSS

Schritt 2: Importieren des Namensraums

using Aspose.Cells_FOSS;

Schritt 3: Hinzufügen einer Dropdown-Bestätigung der Liste

Erstellen einer CellArea mit: CellArea.CreateCellArea(), fügen Sie es zu Worksheet.Validations, und gesetzt ValidationType.List mit einer durch Komma getrennten Liste in Formula1.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

// Dropdown list for A1:A10
var listVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("A1", "A10"))];
listVal.Type = ValidationType.List;
listVal.Formula1 = "\"Open,In Progress,Closed\"";
listVal.InCellDropDown = true;
listVal.IgnoreBlank = true;
listVal.InputTitle = "Status";
listVal.InputMessage = "Choose a status from the dropdown";

wb.Save("list-validation.xlsx");
Console.WriteLine("List validation added.");

Schritt 4: Hinzufügen einer numerischen Bereichsvalidierung

Verwendung ValidationType.Decimal mit: OperatorType.Between und . Formula1/Formula2 Um die numerische Eingabe zu begrenzen.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

// Decimal range validation for B1:B10 — allow 0 to 100
var numVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("B1", "B10"))];
numVal.Type = ValidationType.Decimal;
numVal.Operator = OperatorType.Between;
numVal.Formula1 = "0";
numVal.Formula2 = "100";
numVal.ErrorTitle = "Out of Range";
numVal.ErrorMessage = "Please enter a number between 0 and 100.";
numVal.ShowError = true;
numVal.IgnoreBlank = true;

wb.Save("decimal-validation.xlsx");
Console.WriteLine("Decimal validation added.");

Schritt 5: Kombinieren mehrere Validierungen auf demselben Blatt

Sie können eine beliebige Anzahl von Validierungen auf demselben Blatt hinzufügen, indem Sie die Validations.Add() Mehrfach, jeder mit einem anderen CellArea.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

// List validation for column A (status)
var statusVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("A2", "A100"))];
statusVal.Type = ValidationType.List;
statusVal.Formula1 = "\"New,Open,Closed\"";
statusVal.InCellDropDown = true;

// Decimal validation for column B (score)
var scoreVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("B2", "B100"))];
scoreVal.Type = ValidationType.Decimal;
scoreVal.Operator = OperatorType.Between;
scoreVal.Formula1 = "0";
scoreVal.Formula2 = "10";
scoreVal.ShowError = true;

wb.Save("combined-validation.xlsx");
Console.WriteLine("Combined validations added to sheet.");

Häufige Probleme und Lösungen

Die Dropdown-Datei wird nach dem Speichern nicht in Excel angezeigt. Sicherstellen InCellDropDown = true ist auf der Validation Objekt vor dem Speichern. Der Dropdown ist nur in Excel sichtbar, wenn dieses Flagge auf der Seite “Stop” angezeigt wird. true und . ValidationType.List wird verwendet.

Validierung erlaubt Werte außerhalb des definierten Bereichs. Die Validierung wird von Excel erfolgen, nicht von der Bibliothek. Durch das Einrichten von Validierungsregeln kann die Bibliotheek selbst keine Werte in eine Zelle schreiben. Die validierende Anwendung findet statt, wenn ein Benutzer Daten in Excel eingibt.

Formula1 für eine Liste zeigt die Validierung wie folgt aus: #NAME? in Excel. Für eine durch Komma getrennte Inline-Liste, wickeln Sie die Zeichenfolge in entlaufene Zitate ein: Formula1 = "\"Option1,Option2,Option3\"".Ohne die inneren Anführungszeichen behandelt Excel den Wert als Zellreferenzformel.

OperatorType.Between nicht korrekt angewendet werden. Sicherstellen, dass beide Formula1 (Mindest) und Formula2 (maximum) als Zeichenfolgen festgelegt. fehlt Formula2 für die Between Die oberen Grenzen bleiben undefiniert.

Häufig gestellte Fragen

Kann ich gegen einen Zellbereich (z. B. ein benannter Bereich) validieren?

Setz Formula1 auf eine Zellbereichsreferenz wie z. B. "Sheet2!$A$1:$A$10".Die Werte in diesem Bereich werden als Ausgangsliste verwendet.

Verhindert die Validierung, dass die Bibliothek ungültige Werte schreibt?

Nein. Validierungsregeln werden von Excel durchgesetzt, wenn ein Benutzer Daten eingibt. Die Aspose.Cells FOSS-Bibliothek erzwingt keine Validierung, sobald Sie aufrufen Cell.PutValue() Programmatisch.

Wie entferne ich eine Validierungsregel?

Zugriff auf die Regel über Worksheet.Validations[index] und Verwendung ValidationCollection Alternativ erstellen Sie ein neues Arbeitsbuchmodell ohne die unerwünschten Regeln.

Wie viele Gültigkeitsprüfungen pro Blatt können maximal durchgeführt werden?

Das XLSX-Format unterstützt bis zu 65.530 Validierungsregeln pro Arbeitsblatt.

Siehe auch:

 Deutsch