Як працювати з перевіркою даних у .NET

Як працювати з перевіркою даних у .NET

Aspose.Cells FOSS для .NET дозволяє додавати правила валідації даних до діапазонів клітинок за допомогою 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 після збереження. Ensure InCellDropDown = true встановлено на Validation об’єкт перед збереженням. Випадаючий список видно в Excel лише коли цей прапорець true and ValidationType.List використовується.

Перевірка дозволяє значення поза визначеним діапазоном. Перевірка застосовується Excel, а не бібліотекою. Встановлення правил перевірки не запобігає самій бібліотеці записувати будь-яке значення в клітинку. Перевірка застосовується, коли користувач вводить дані в Excel.

Formula1 для перевірки списку відображається як #NAME? в Excel. Для вбудованого списку, розділеного комами, обгорніть рядок у екрановані лапки: Formula1 = "\"Option1,Option2,Option3\"". Без внутрішніх лапок Excel розглядає значення як формулу посилання на клітинку.

OperatorType.Between не застосовується правильно. Переконайтеся, що обидва Formula1 (minimum) і Formula2 (maximum) встановлені як рядки. Відсутність Formula2 for Between залишає верхню межу невизначеною.

Поширені запитання

Чи можу я виконувати валідацію щодо діапазону клітинок (наприклад, іменованого діапазону)?

Встановіть Formula1 як посилання на діапазон клітинок, наприклад "Sheet2!$A$1:$A$10". Значення в цьому діапазоні будуть використані як джерело для випадаючого списку.

Чи запобігає валідація бібліотеці записувати недійсні значення?

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

Як видалити правило валідації?

Отримайте доступ до правила через Worksheet.Validations[index] і використовуйте операції ValidationCollection для керування правилами. Альтернативно, створіть нову модель книги без небажаних правил.

Яка максимальна кількість валідацій на лист?

Формат XLSX підтримує до 65,530 правил валідації на аркуш.

Дивіться також

 Українська