Как да добавите валидиране на данни в таблица в C++

Как да добавите валидиране на данни в таблица в C++

Aspose.Cells FOSS for C++ supports cell-level data validation rules that constrain what values users can enter in specific cells or ranges. The Validation, ValidationCollection, и WorkbookValidator класовете съставляват API за валидиране.

Постепенно ръководство

Първа стъпка: Постройте сградата

cmake_minimum_required(VERSION 3.15)
project(DataValidation CXX)
set(CMAKE_CXX_STANDARD 17)

add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)
add_executable(DataValidation main.cpp)
target_link_libraries(DataValidation PRIVATE Aspose.Cells.Foss.Cpp)

Стъпка 2: Включете необходимите заглавия

#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;

Стъпка 3: Достъп до колекцията за валидиране

Вземете си… ValidationCollection от работния лист:

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

Стъпка 4: Добавяне на правило за валидиране

Обади се. ValidationCollection::Add() и конфигуриране на връщаните данни. Validation обект:

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

v.SetType(ValidationType::WholeNumber);
v.SetFormula1("1");
v.SetFormula2("100");
v.SetIgnoreBlank(true);
v.SetInputTitle("Enter Quantity");
v.SetInputMessage("Enter a whole number between 1 and 100.");
v.SetErrorTitle("Invalid Input");
v.SetErrorMessage("Value must be between 1 and 100.");
v.SetShowInput(true);
v.SetShowError(true);
v.SetAlertStyle(ValidationAlertType::Stop);

Стъпка 5: Приложи правилото към диапазона

Прикрепете валидирането към: CellArea използване на: Validation::AddArea:

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

Стъпка 6: Запази работния лист

workbook.Save("validated.xlsx");
workbook.Dispose();

Стъпка 7: Изпълнете предварително запазване (незадължително)

Обади се. WorkbookValidator::ValidateForSave по време на разработването, за да се открият проблеми с модела преди съхранение:

WorkbookValidator validator;
validator.ValidateForSave(workbook);
workbook.Save("validated.xlsx");

Обичайни проблеми и решения

Валидиране не е видимо в запазен файл Осигуряване на Validation::AddArea(area) Правилото без свързана област не се сериализира.

Не се показва списък с изтеглящи файлове. Настройка v.SetInCellDropDown(true) и се задава: v.SetType(ValidationType::List) с: SetFormula1 посочване на диапазон или стойности, отделени с запетая.

Области за валидиране, които се припокриват Използване на: ValidationCollection::AreasOverlap за проверка на конфликти преди добавяне на ново правило. Надносящите се правила могат да предизвикат неочаквано поведение в Excel.

Не се показва съобщение за вход Уверете се, че и двете са в съответствие. SetShowInput(true) и в) SetInputMessage("...") са зададени. Празен нисък съобщение потиска входния запис дори ако SetShowInput(true) - Нарича се.

ValidateForSave докладва грешки; Общи причини включват липсващите граници на формулата за валидиране с диапазон и невалидни координати на площта на клетката.

Често задавани въпроси

Какви видове валидиране се поддържат?

Съветът на ЕС ValidationType Изброяването включва: WholeNumber, Decimal, List, Date, TextLength, Custom, и Any.

Мога ли да премахна правило за валидиране от обхват?

Да, използвай. ValidationCollection::RemoveArea(area) да премахне правилото от обхват, или RemoveACell(row, col) за една клетка.

Мога ли да прилагам едно и също правило за валидиране на няколко диапазона?

Да, обади се. Validation::AddArea(area) няколко пъти на едно и също нещо. Validation възразяват срещу прилагането му към допълнителни диапазони.

Какви са наличните начини за предупреждение?

ValidationAlertType включва: Stop (блокира невалиден вписване), Warning (предупреждава, но позволява влизане) и Information (само информационни съвети).

Дали валидирането работи по време на изпълнение или само в Excel?

Правилата за валидиране на данни се съхраняват във файла XLSX и са изпълнени от Excel или съвместим четец. Библиотеката не оценява ограниченията за проверка по време на изпълнение, когато стойностите са зададени програмично.

Вижте също:

 Български