Как да работите с валидиране на данни в .NET

Как да работите с валидиране на данни в .NET

Aspose.Cells FOSS for .NET enables you to add data validation rules to cell ranges through Worksheet.Validations (а) ValidationCollection) Звънване Add(CellArea) да се създаде Validation обект и да се определи неговата Type използване на: ValidationType.Подкрепяни видове включват: List, Decimal, и Custom.Инсталиране с: dotnet add package Aspose.Cells_FOSS.

Постепенно ръководство

Стъпка 1: Инсталирайте пакета

dotnet add package Aspose.Cells_FOSS

Стъпка 2: Импортиране на пространството за имена

using Aspose.Cells_FOSS;

Стъпка 3: Добавяне на изтеглящо се потвърждение за списък

Създаване на CellArea с: CellArea.CreateCellArea(), добавете го към Worksheet.Validations, и се задава: ValidationType.List с отделен от запетая списък в 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.");

Стъпка 4: Добавяне на цифрова верификация за диапазон

Използване на: ValidationType.Decimal с: OperatorType.Between и в) Formula1/Formula2 да ограничи цифровия вход.

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: Комбинирайте няколко валидации на един и същ лист

Можете да добавите брой валидации към същия лист, като се обадите на Validations.Add() няколко пъти, всеки с различен 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.");

Обичайни проблеми и решения

Скриващият списък не се показва в Excel след запазване. Осигуряване на InCellDropDown = true е зададен на Validation изтегляне е видима само в Excel, когато този флаг е true и в) ValidationType.List се използва.

Възстановяване на стойностите извън определения диапазон. Валидирането се извършва от Excel, а не от библиотеката. Настройването на правила за валидация не пречи на самата библиотека да пише някаква стойност в клетката. Вализацията се прилага, когато потребителят въвежда данни в Excel.

Formula1 за списък валидирането показва като: #NAME? в Excel. За списък с отделни запетая, опаковайте нивото в пропуснати цитати: Formula1 = "\"Option1,Option2,Option3\"".Без вътрешните цитати, Excel третира стойността като формула за препратка към клетка.

OperatorType.Between не се прилага правилно. Уверете се, че и двете са в съответствие. Formula1 (минимално) и Formula2 (максимум) са зададени като нишки. Липсва Formula2 за: Between оставя горната граница недефинирана.

Често задавани въпроси

Мога ли да валидирам срещу диапазон от клетки (например, на именен диапанзон)?

Настройка Formula1 към референтна диапазона на клетките, като например: "Sheet2!$A$1:$A$10".Цените в този диапазон ще бъдат използвани като източник на падащия списък.

Предотвратява ли валидирането библиотеката да запише невалидни стойности?

Не. Правилата за валидиране се прилагат от Excel, когато потребителят въвежда данни. Aspose.Cells библиотеката на FOSS не принуждава вализацията при обаждане. Cell.PutValue() Програматично.

Как да премахна правило за валидиране?

Достъп до правилото чрез: Worksheet.Validations[index] и употреба ValidationCollection Или създадете нов модел на работната книга без нежеланите правила.

Какъв е максималният брой валидации на лист?

Форматът XLSX поддържа до 65 530 правила за валидиране на работен лист.

Вижте също:

 Български