Kako raditi s validacijom podataka u .NET-u
Aspose.Cells FOSS za .NET omogućuje vam dodavanje pravila provjere podataka u raspon ćelija putem Worksheet.Validations (ValidationCollection). Pozovite Add(CellArea) za stvaranje objekta Validation i postavite njegov Type pomoću ValidationType. Podržane vrste uključuju List, Decimal i Custom. Instalirajte pomoću dotnet add package Aspose.Cells_FOSS.
Vodič korak po korak
Korak 1: Instalirajte paket
dotnet add package Aspose.Cells_FOSSKorak 2: Uvezi prostor imena
using Aspose.Cells_FOSS;Korak 3: Dodajte provjeru padajućeg izbornika
Stvori CellArea s CellArea.CreateCellArea(), dodaj ga u Worksheet.Validations i postavi ValidationType.List s popisom odvojenim zarezom 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.");Korak 4: Dodajte provjeru numeričkog raspona
Koristite ValidationType.Decimal s OperatorType.Between i Formula1/Formula2 za ograničavanje numeričkog unosa.
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.");Korak 5: Kombinirajte više provjera na istom listu
Možete dodati bilo koji broj provjera na isti list pozivanjem Validations.Add() više puta, svaki s različitim 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.");Uobičajeni problemi i rješenja
Padajući izbornik se ne pojavljuje u Excelu nakon spremanja.
Provjerite je li InCellDropDown = true postavljen na objekt Validation prije spremanja. Padajući izbornik je vidljiv u Excelu samo kada je ova zastavica true i koristi se ValidationType.List.
Validacija dopušta vrijednosti izvan definiranog raspona. Validacija se provodi od strane Excela, a ne od biblioteke. Postavljanje pravila validacije ne sprječava samu biblioteku da piše bilo koju vrijednost u ćeliju. Validacija se primjenjuje kada korisnik unese podatke u Excel.
Formula1 za provjeru popisa prikazuje se kao #NAME? u Excelu.
Za inline popis odvojen zarezom, stavite niz u escapirane navodnike: Formula1 = "\"Option1,Option2,Option3\"". Bez unutarnjih navodnika, Excel tretira vrijednost kao formulu reference na ćeliju.
OperatorType.Between ne primjenjuje se ispravno.
Provjerite da su i Formula1 (minimum) i Formula2 (maksimum) postavljeni kao stringovi. Nedostaje Formula2 za Between što ostavlja gornju granicu nedefiniranom.
Često postavljana pitanja
Mogu li validirati prema rasponu ćelija (npr. imenovanom rasponu)?
Postavite Formula1 na referencu raspona ćelija, poput "Sheet2!$A$1:$A$10". Vrijednosti u tom rasponu bit će korištene kao izvor padajućeg popisa.
Sprječava li validacija da biblioteka zapisuje nevažeće vrijednosti?
Ne. Pravila provjere valjanosti provodi Excel kada korisnik unese podatke. Aspose.Cells FOSS biblioteka ne provodi provjeru valjanosti kada pozovete Cell.PutValue() programatski.
Kako ukloniti pravilo validacije?
Pristupite pravilu putem Worksheet.Validations[index] i koristite operacije ValidationCollection za upravljanje pravilima. Alternativno, izradite novi model radne knjige bez neželjenih pravila.
Koji je maksimalni broj validacija po listu?
XLSX format podržava do 65.530 pravila provjere po radnom listu.