Sådan arbejder du med datavalidering i .NET

Sådan arbejder du med datavalidering i .NET

Aspose.Cells FOSS for .NET giver dig mulighed for at tilføje datavalideringsregler til celleområder gennem Worksheet.Validations (en ValidationCollection). Kald Add(CellArea) for at oprette et Validation‑objekt og indstil dets Type ved hjælp af ValidationType. Understøttede typer inkluderer List, Decimal og Custom. Installer med dotnet add package Aspose.Cells_FOSS.

Trin-for-trin guide

Trin 1: Installer pakken

dotnet add package Aspose.Cells_FOSS

Trin 2: Importér navnerummet

using Aspose.Cells_FOSS;

Trin 3: Tilføj en liste‑dropdown‑validering

Opret en CellArea med CellArea.CreateCellArea(), tilføj den til Worksheet.Validations, og indstil ValidationType.List med en kommasepareret 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 intervalvalidering

Brug ValidationType.Decimal med OperatorType.Between og Formula1/Formula2 for at begrænse numerisk input.

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 vilkårligt antal valideringer til det samme ark ved at kalde Validations.Add() flere gange, hver gang 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 rettelser

Dropdown-menuen vises ikke i Excel efter gemning.
Sørg for, at InCellDropDown = true er indstillet på Validation-objektet inden gemning. Dropdown-menuen er kun synlig i Excel, når dette flag er true, og ValidationType.List anvendes.

Validering tillader værdier uden for det definerede interval. Valideringen håndhæves af Excel, ikke af biblioteket. Indstilling af valideringsregler forhindrer ikke biblioteket i at skrive en hvilken som helst værdi til cellen. Valideringen anvendes, når en bruger indtaster data i Excel.

Formula1 for en listevalidering vises som #NAME? i Excel.
For en inline kommasepareret liste, omslut strengen i undslupne anførselstegn: Formula1 = "\"Option1,Option2,Option3\"". Uden de indre anførselstegn behandler Excel værdien som en cellehenvisningsformel.

OperatorType.Between anvendes ikke korrekt. Sørg for, at både Formula1 (minimum) og Formula2 (maksimum) er angivet som strenge. Manglende 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)?

Indstil Formula1 til en celleområde‑referencen, såsom "Sheet2!$A$1:$A$10". Værdierne i dette område vil blive brugt som kilde til rullemenuen.

Forhindrer validering, at biblioteket skriver ugyldige værdier?

Nej. Valideringsregler håndhæves af Excel, når en bruger indtaster data. Aspose.Cells FOSS‑biblioteket håndhæver ikke validering, når du kalder Cell.PutValue() programmatisk.

Hvordan fjerner jeg en valideringsregel?

Få adgang til reglen via Worksheet.Validations[index] og brug ValidationCollection operationer til at administrere regler. 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