Работа с валидиране на данни

Работа с валидиране на данни

Работа с валидиране на данни

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 Изброяването определя видовете ограничения, които могат да бъдат приложени:

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

Стил на предупреждение

Съветът на ЕС ValidationAlertType Изброяване контролира поведението, показвано при неуспешен валидиране:

AlertStyleПоведение
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)

Валидиране на работната книга преди съхранение

Обади се. WorkbookValidator::ValidateForSave да провери съответствието на модела на работната книга преди съхранение. Това се нарича автоматично от Workbook::Save но може да се използва самостоятелно по време на разработването:

WorkbookValidator validator;
validator.ValidateForSave(workbook);

Съвети и най-добри практики

  • Винаги поставя и двете. SetFormula1 и в) SetFormula2 за валидиране на диапазона (WholeNumber, Decimal, Date) за определяне на долната и горната граница.
  • Използване на: SetIgnoreBlank(true) да позволи на празни клетки да преминат валидирането, без да се предизвика грешка.
  • Обади се. ValidationCollection::AreasOverlap преди добавянето на ново правило за проверка на припокриване на областите за валидиране в същия лист.
  • WorkbookValidator::ValidateForSave се повиква вътрешно при запазване; извикайте го по време на разработването, за да откриете проблеми рано.

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

ИзданиеПричина за товаРемонтиране
Валидиране не се прилага за клеткаПлощ, която не е добавенаОбади се. Validation::AddArea(area) с целевия диапазон
Не се показва разпределянеSetInCellDropDown(false)Настройка SetInCellDropDown(true) за валидиране на списъците
Правила за припокриванеДве правила обхващат една и съща клетка.Използване на: AreasOverlap да открива и разрешава конфликти;
ValidateForSave не работиНесъответствие на моделаПрегледайте и поправете съобщената несъответствие преди съхранение.

Снимка на API референтна информация

Клас/методОписание на състоянието
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Проверка на съгласуваността преди съхранение

Вижте също:

 Български