Kaip dirbti su duomenų validacija .NET

Kaip dirbti su duomenų validacija .NET

Aspose.Cells FOSS for .NET leidžia pridėti duomenų tikrinimo taisykles ląstelių diapazonams per Worksheet.Validations (ValidationCollection). Iškvieskite Add(CellArea), kad sukurtumėte Validation objektą ir nustatytumėte jo Type naudodami ValidationType. Palaikomi tipai yra List, Decimal ir Custom. Įdiekite naudodami dotnet add package Aspose.Cells_FOSS.

Žingsnis po žingsnio vadovas

1 žingsnis: Įdiekite paketą

dotnet add package Aspose.Cells_FOSS

Žingsnis 2: importuoti vardų sritį

using Aspose.Cells_FOSS;

3 žingsnis: Pridėti sąrašo išskleidžiamą patikrinimą

Sukurkite CellArea su CellArea.CreateCellArea(), pridėkite jį prie Worksheet.Validations ir nustatykite ValidationType.List su kableliais atskirtu sąrašu 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.");

Žingsnis 4: Pridėti skaitinio intervalo patikrinimą

Naudokite ValidationType.Decimal kartu su OperatorType.Between ir Formula1/Formula2, kad apribotumėte skaitinę įvestį.

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

Žingsnis 5: sujungti kelias patikras tame pačiame lape

Galite pridėti bet kokį skaičių patikrinimų į tą patį lapą, kviesdami Validations.Add() kelis kartus, kiekvieną kartą su skirtingu 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.");

Dažnos problemos ir sprendimai

Išsaugojus, išskleidžiamasis meniu neatsiranda Excel.
Įsitikinkite, kad InCellDropDown = true yra nustatytas Validation objekte prieš išsaugojant. Išskleidžiamasis meniu matomas Excel tik tada, kai ši vėliava yra true ir naudojamas ValidationType.List.

Patikrinimas leidžia reikšmes, kurios yra už nustatyto intervalo. Patikrinimą įgyvendina Excel, o ne biblioteka. Nustatant patikrinimo taisykles, biblioteka vis tiek gali įrašyti bet kokią reikšmę į langelį. Patikrinimas taikomas, kai naudotojas įveda duomenis Excel.

Formula1 sąrašo patikrinimui rodomas kaip #NAME? programoje Excel. Įterptam sąrašui, atskirtam kableliais, apgaubkite eilutę pabėgimo kabutėmis: Formula1 = "\"Option1,Option2,Option3\"". Be vidinių kabučių, Excel laiko reikšmę kaip langelio nuorodos formulę.

OperatorType.Between netinkamai taikomas.
Įsitikinkite, kad tiek Formula1 (minimumas), tiek Formula2 (maksimumas) būtų nustatyti kaip eilutės. Trūkstant Formula2 Between, viršutinė riba lieka neapibrėžta.

Dažnai užduodami klausimai

Ar galiu validuoti pagal langelių diapazoną (pvz., pavadintą diapazoną)?

Nustatykite Formula1 į langelių intervalo nuorodą, pvz., "Sheet2!$A$1:$A$10". Šio intervalo reikšmės bus naudojamos kaip išskleidžiamojo sąrašo šaltinis.

Ar validacija neleidžia bibliotekai rašyti neteisingų verčių?

Ne. Patikrinimo taisyklės yra taikomos Excel, kai naudotojas įveda duomenis. Aspose.Cells FOSS biblioteka neįgyvendina patikrinimo, kai iškviečiate Cell.PutValue() programiškai.

Kaip pašalinti validacijos taisyklę?

Pasiekite taisyklę per Worksheet.Validations[index] ir naudokite ValidationCollection operacijas taisyklėms valdyti. Alternatyviai sukurkite naują darbo knygos modelį be nepageidaujamų taisyklių.

Koks yra maksimalus patikrinimų skaičius vienam lapui?

XLSX formatas palaiko iki 65,530 patikrinimo taisyklių vienam darbalapiui.

Žr. taip pat

 Lietuvių