Работа с проверкой данных

Работа с проверкой данных

Работа с проверкой данных

Aspose.Cells FOSS for C++ supports adding cell-level data validation rules to worksheets via the Validation и в том числе: ValidationCollection Классы. WorkbookValidator класс обеспечивает проверку согласованности до сохранения.


Добавление правила проверки

Доступ к сборнику подтверждений для рабочего листа и добавление нового правила при помощи: ValidationCollection::Add(). Установление типа, формулы и целевой области на возвращенной Validation объект:

#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/Worksheet.h"
#include "aspose/cells_foss/ValidationCollection.h"
#include "aspose/cells_foss/Validation.h"
#include "aspose/cells_foss/CellArea.h"

using namespace Aspose::Cells_FOSS;

int main() {
    Workbook workbook;
    Worksheet& sheet = workbook.GetWorksheets()[0];
    ValidationCollection& validations = sheet.GetValidations();

    int idx = validations.Add();
    Validation& v = validations[idx];

    v.SetType(ValidationType::WholeNumber);
    v.SetFormula1("1");
    v.SetFormula2("100");
    v.SetIgnoreBlank(true);
    v.SetInCellDropDown(false);
    v.SetInputTitle("Enter Value");
    v.SetInputMessage("Value must be between 1 and 100.");
    v.SetErrorTitle("Invalid Input");
    v.SetErrorMessage("Value is out of range.");
    v.SetShowInput(true);
    v.SetShowError(true);

    CellArea area = CellArea::CreateCellArea("B2", "B10");
    v.AddArea(area);

    workbook.Save("validated.xlsx");
    return 0;
}

Типы проверки

В связи с этим ValidationType перечисление определяет виды ограничений, которые могут быть применены:

ValidationTypeDescription
WholeNumberОграничение целого числа
DecimalОграничение с плавающей точкой
ListСписок выпадающих из формулы или диапазона
DateОграничение значения даты
TextLengthОграничение длины строки
CustomПравила таможенного регулирования на основе формулы

Стиль оповещения

В связи с этим ValidationAlertType перечисление контролирует поведение, показываемое при неудаче валидации:

AlertStyleBehavior
StopЗапрещает вход и показывает диалог с ошибками .
WarningПоказать предупреждение; пользователь может принять или отклонить
InformationПоказать информационный совет для инструментов

Установка стиля оповещения с помощью: Validation::SetAlertStyle(ValidationAlertType).


Запрос подтверждения в ячейке

Использование: ValidationCollection::GetValidationInCell(row, col) чтобы найти, какое правило проверки применяется к конкретной ячейке. Возвращает nullptr если не применяется никакое правило.


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

Удаление подтверждения из конкретной ячейки или зоны диапазона:

CellArea area = CellArea::CreateCellArea("B2", "B10");
validations.RemoveArea(area);
// Or remove a single cell:
validations.RemoveACell(1, 1); // row=1, col=1 (0-based)

Подтверждение рабочей книги до сохранения

Call WorkbookValidator::ValidateForSave чтобы запустить проверку согласованности на модели рабочей книги перед сохранением. Это автоматически вызвано Workbook::Save но могут быть использованы самостоятельно во время разработки:

WorkbookValidator validator;
validator.ValidateForSave(workbook);

Советы и лучшие практики

  • Всегда настраивай оба . SetFormula1 и в том числе: SetFormula2 для проверки типа диапазона (WholeNumber, Decimal, Date) для определения нижней и верхней границ.
  • Использование: SetIgnoreBlank(true) позволить пустым ячейкам пройти проверку без возникновения ошибки.
  • Call ValidationCollection::AreasOverlap до добавления нового правила для проверки на наличие перекрытий областей валидации в одном и том же листе.
  • WorkbookValidator::ValidateForSave Внутренне вызывается при сохранении; вызвать его во время разработки, чтобы зафиксировать проблемы на ранней стадии.

Общие проблемы

IssueCauseУстранить
Валидация не применяется к ячейке.Площадь не добавленаCall Validation::AddArea(area) с целевым диапазоном
Не показан выпадающий списокSetInCellDropDown(false)Набор SetInCellDropDown(true) для подтверждения перечня
Правила перекрываются.Два правила охватывают одни и те же ячейки.Использование: AreasOverlap выявление и разрешение конфликтов;
Не удалось установить ValidateForSaveНесовместимость моделиПересмотр и исправление сообщенной несоответствия перед сохранением.

Справочное резюме API

Класс/методDescription
ValidationCollection::Add()Добавить новое правило валидации пустого файла .
ValidationCollection::GetValidationInCell(row, col)Найти подтверждение для ячейки
ValidationCollection::RemoveArea(area)Удалить подтверждение из диапазона
ValidationCollection::RemoveACell(row, col)Удалить подтверждение из ячейки
ValidationCollection::AreasOverlapПроверка на наличие перекрытий областей валидации.
Validation::SetType(ValidationType)Установка типа проверки
Validation::SetFormula1(expr)Установка нижней границы или источника списка
Validation::SetFormula2(expr)Установка верхней границы
Validation::AddArea(area)Применение правила к диапазону
Validation::RemoveArea(area)Удалить правило из диапазона
Validation::SetAlertStyle(style)Настройка поведения при остановке/предупреждении/информации
WorkbookValidator::ValidateForSaveПроверка согласованности до сохранения

See Also

 Русский