Kako raditi sa validacijom podataka u .NET-u
Aspose.Cells FOSS za .NET omogućava vam da dodate pravila za proveru podataka u opsege ćelija putem Worksheet.Validations (ValidationCollection). Pozovite Add(CellArea) da biste kreirali objekat Validation i postavili njegov Type koristeći ValidationType. Podržani tipovi uključuju List, Decimal i Custom. Instalirajte pomoću dotnet add package Aspose.Cells_FOSS.
Водич корак по корак
Korak 1: Instalirajte paket
dotnet add package Aspose.Cells_FOSSKorak 2: Uvezi prostor imena
using Aspose.Cells_FOSS;Korak 3: Dodajte validaciju padajuće liste
Kreirajte CellArea sa CellArea.CreateCellArea(), dodajte ga u Worksheet.Validations i postavite ValidationType.List sa listom odvojenom 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 validaciju numeričkog opsega
Koristite ValidationType.Decimal sa OperatorType.Between i Formula1/Formula2 da ograničite numerički unos.
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.");Корак 5: Комбиновање више валидација на истом листу
Možete dodati bilo koji broj validacija na isti list pozivanjem Validations.Add() više puta, svaki sa 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 popravke
Padajući meni se ne pojavljuje u Excelu nakon čuvanja.
Osigurajte da je InCellDropDown = true postavljen na objekt Validation pre čuvanja. Padajući meni je vidljiv u Excelu samo kada je ova zastavica true i koristi se ValidationType.List.
Validacija dozvoljava vrednosti izvan definisanog opsega.
Validaciju primenjuje Excel, a ne biblioteka. Postavljanje pravila validacije ne sprečava samu biblioteku da upiše bilo koju vrednost u ćeliju. Validacija se primenjuje kada korisnik unese podatke u Excel.
Formula1 za validaciju liste prikazuje se kao #NAME? u Excelu.
Za inline listu odvojenu zarezom, stavite string u escapovane navodnike: Formula1 = "\"Option1,Option2,Option3\"". Bez unutrašnjih navodnika, Excel tretira vrednost kao formulu reference ćelije.
OperatorType.Between se ne primenjuje ispravno.
Osigurajte da su i Formula1 (minimum) i Formula2 (maksimum) postavljeni kao stringovi. Nedostaje Formula2 za Between što ostavlja gornju granicu nedefinisanu.
Često postavljana pitanja
Могу ли да валидирам у односу на опсег ћелија (нпр. именовани опсег)?
Postavite Formula1 na referencu opsega ćelija, na primer "Sheet2!$A$1:$A$10". Vrednosti u tom opsegu će se koristiti kao izvor padajuće liste.
Da li validacija sprečava biblioteku da upisuje nevažeće vrednosti?
Ne. Pravila validacije primenjuje Excel kada korisnik unese podatke. Aspose.Cells FOSS biblioteka ne primenjuje validaciju kada pozovete Cell.PutValue() programatski.
Kako da uklonim pravilo validacije?
Pristupite pravilu putem Worksheet.Validations[index] i koristite operacije ValidationCollection za upravljanje pravilima. Alternativno, kreirajte novi model radne sveske bez neželjenih pravila.
Koji je maksimalni broj validacija po listu?
XLSX format podržava do 65.530 pravila validacije po radnom listu.