Работа с Валидацией в Рабочих Листах

Режимы Валидации

Aspose.Cells.GridDesktop поддерживает три режима валидации, как показано ниже:

  • Режим Валидации Обязательного Заполнения
  • Режим Валидации по Регулярным Выражениям
  • Пользовательский Режим Валидации

Режим Валидации Обязательного Заполнения

В этом режиме валидации пользователи ограничены вводить значения в определенные ячейки. После применения Режима Валидации Обязательного Заполнения к ячейке рабочего листа, пользователю необходимо ввести значение в эту ячейку.

Режим Валидации по Регулярным Выражениям

В этом режиме на ячейки рабочего листа накладываются ограничения на пользователей для ввода данных в определенном формате. Шаблон формата данных предоставляется в виде Регулярного Выражения.

Пользовательский Режим Валидации

Для использования Пользовательской Валидации разработчики должны реализовать интерфейс Aspose.Cells.GridDesktop.ICustomValidation. Интерфейс предоставляет метод Validate. Этот метод возвращает true, если данные допустимы, в противном случае возвращает false.

Работа с Валидацией в Aspose.Cells.GridDesktop

Добавление Валидации

Чтобы добавить любую валидацию к ячейке рабочего листа, выполните следующие действия:

  • Добавьте элемент управления Aspose.Cells.GridDesktop на ваш Форм
  • Получить доступ к любому желаемому Рабочему листу
  • Добавить желаемую проверку в коллекцию Проверок для Рабочего листа, чтобы указать, какая проверка будет применяться к какой ячейке.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing first worksheet of the Grid
Worksheet sheet = gridDesktop1.Worksheets[0];
// Adding values to specific cells of the worksheet
sheet.Cells["a2"].Value = "Required";
sheet.Cells["a4"].Value = "100";
sheet.Cells["a6"].Value = "2006-07-21";
sheet.Cells["a8"].Value = "101.2";
// Adding Is Required Validation to a cell
sheet.Validations.Add("a2", true, "");
// Adding simple Regular Expression Validation to a cell
sheet.Validations.Add("a4", true, @"\d+");
// Adding complex Regular Expression Validation to a cell
sheet.Validations.Add("a6", true, @"\d{4}-\d{2}-\d{2}");
// Adding Custom Validation to a cell
sheet.Validations.Add("a8", new CustomValidation());

Реализация ICustomValidation

В приведенном выше отрывке кода мы добавили пользовательскую проверку в ячейке A8, но еще не реализовали эту пользовательскую проверку. Как мы объяснили в начале этой темы, для применения пользовательской проверки необходимо реализовать интерфейс ICustomValidation. Так что давайте попробуем создать класс для реализации интерфейса ICustomValidation.

В приведенном ниже отрывке кода мы реализовали пользовательскую проверку для выполнения следующих проверок:

  • Проверить правильность адреса ячейки, в которой добавлена проверка
  • Проверить, является ли тип данных значения ячейки двойным
  • Проверить, является ли значение ячейки большим, чем 100
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Implementing ICustomValidation interface
public class CustomValidation : Aspose.Cells.GridDesktop.ICustomValidation
{
// Implementing Validate method already defined in the interface
public bool Validate(Worksheet worksheet, int row, int col, object value)
{
// Checking the cell's address
if (row == 7 && col == 0)
{
//Checking the data type of cell's value
double d = 0;
try
{
d = (double)value;
}
catch
{
return false;
}
// Checking if the cell's value is greater than 100
if (d > 100)
return true;
}
return false;
}
}

Доступ к проверке

Как только проверка добавлена к конкретной ячейке рабочего листа, разработчикам может потребоваться получить доступ и изменить атрибуты конкретной проверки во время выполнения. Таким образом, Aspose.Cells.GridDesktop упростил разработчикам выполнение этой задачи.

Чтобы получить доступ к конкретной проверке, следуйте указанным ниже шагам:

  • Получите доступ к желаемому Рабочему листу
  • Получите доступ к конкретной Проверке на рабочем листе, указав имя ячейки, на которой была применена проверка
  • Измените атрибуты Проверки, если необходимо
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing first worksheet of the Grid
Worksheet sheet = gridDesktop1.Worksheets[0];
if (sheet.Validations.Count > 0)
{
// Accessing the Validation object applied on "a8" cell
Aspose.Cells.GridDesktop.Data.GridValidation validation = sheet.Validations[7, 0];
// Editing the attributes of Validation
validation.IsRequired = true;
validation.RegEx = "";
validation.CustomValidation = null;
MessageBox.Show("Validation has been edited after accessing it.");
}
else
{
MessageBox.Show("No validations found to access.");
}

Удаление проверки

Чтобы удалить конкретную проверку с рабочего листа, следуйте указанным ниже шагам:

  • Получите доступ к желаемому Рабочему листу
  • Удалите конкретную Проверку с Рабочего листа, указав имя ячейки, на которой была применена проверка
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing first worksheet of the Grid
Worksheet sheet = gridDesktop1.Worksheets[0];
if (sheet.Validations.Count > 0)
{
// Removing the Validation object applied on "a6" cell
sheet.Validations.RemoveAt(1);
MessageBox.Show("Validation has been removed.");
}
else
{
MessageBox.Show("No validations found to remove.");
}