Робота з валідацією даних

Робота з валідацією даних

Робота з валідацією даних

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

 Українська