Hvordan man arbejder med datakvalidering i .NET

Hvordan man arbejder med datakvalidering i .NET

Aspose.Cells FOSS for .NET enables you to add data validation rules to cell ranges through Worksheet.Validations (a) ValidationCollection) Opkald Add(CellArea) at skabe en Validation - og indstille dens Type brug af ValidationType.Støttede typer omfatter: List, Decimal, og Custom.Installering med: dotnet add package Aspose.Cells_FOSS.

Trin-for-trin vejledning

Trin 1: Installer pakken

dotnet add package Aspose.Cells_FOSS

Trin 2: Import af navneområdet

using Aspose.Cells_FOSS;

Trin 3: Tilføj en liste- og rullegaskevalidering

Oprette en CellArea med: CellArea.CreateCellArea(), læg det til Worksheet.Validations, og indstillet ValidationType.List med en komma-opdelt liste i 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.");

Trin 4: Tilføj en numerisk rækkeviddevalidering

Anvendelse: ValidationType.Decimal med: OperatorType.Between og: Formula1/Formula2 at begrænse den numeriske indgang.

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.");

Trin 5: Kombiner flere valideringer på samme ark

Du kan tilføje et hvilket som helst antal valideringer til det samme ark ved at ringe Validations.Add() flere gange, hver med en anden 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.");

Almindelige problemer og løsninger

Forklaringen vises ikke i Excel efter gemme. Sikre sig InCellDropDown = true er sat på den Validation Objektet før du gemmer. Dropdown-filen er kun synlig i Excel, når dette flag er true og: ValidationType.List er anvendt.

Validering tillader værdier uden for det definerede område. Valideringen håndhæves af Excel, ikke biblioteket. Ved at indstille validering regler forhindrer det ikke selve bibliotettet i at skrive nogen værdi til cellen. Validationen anvendes, når en bruger indtaster data i Excel.

Formula1 for en liste, der er valideret som: #NAME? i Excel. For en liste med kommaer, skal du pakke strengen ind i undladt citat: Formula1 = "\"Option1,Option2,Option3\"".Uden de indre citater behandler Excel værdien som en cellereferenceformel.

OperatorType.Between ikke anvendes korrekt. Sikre begge dele. Formula1 (minimum) og Formula2 (maksimum) er sat som strenge. Mangler Formula2 for: Between efterlader den øvre grænse udefineret.

Ofte stillede spørgsmål

Kan jeg validere mod et celleområde (f.eks. et navngivet område)?

Indstilling Formula1 til en celleintervalreference som f.eks. "Sheet2!$A$1:$A$10".Værdierne i dette område anvendes som kildekilde for rullelisten.

Gør validering det muligt for biblioteket at skrive ugyldige værdier?

Nej. Valideringsreglerne håndhæves af Excel, når en bruger indtaster data. Aspose.Cells FOSS-biblioteket håndlægger ikke validering, hvis du ringer til det pågældende program. Cell.PutValue() Programmatisk.

Hvordan fjerner jeg en valideringsregel?

Tilgang til reglen via Worksheet.Validations[index] og anvendelse af: ValidationCollection Alternativt kan du oprette en ny arbejdsbogmodel uden de uønskede regler.

Hvad er det maksimale antal valideringer pr. ark?

XLSX-formatet understøtter op til 65.530 valideringsregler pr. regneark.

Se også:

 Dansk