Com afegir validació de dades a una plantilla en C++

Com afegir validació de dades a una plantilla en 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, i WorkbookValidator les classes formen l’API de validació.

Guia de pas a pas

Pas 1: Prepara la construcció

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)

Pas 2: Inclou els títols requerits.

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

Pas 3: Accedir a la col·lecció de validació

Recuperar el ValidationCollection de la fitxa:

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

Pas 4: Agregar una regla de validació

Call ValidationCollection::Add() i configurar el retorn de la Validation objecte:

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

Pas 5: Aplicar la regla a una gamma

Anexar la validació a un CellArea utilitzant Validation::AddArea:

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

Pas 6: Desa el llibre de treball

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

Pas 7: Executa la validació de pre-salva (opcional)

Call WorkbookValidator::ValidateForSave durant el desenvolupament per detectar problemes amb els models abans de guardar:

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

Problemes comuns i fixos

No es pot veure la validació en el fitxer guardat Ensure Validation::AddArea(area) Una regla sense àrea associada no és serialitzada.

No apareix la llista desplegable Set de punts v.SetInCellDropDown(true) i fixar v.SetType(ValidationType::List) amb: SetFormula1 indicant un interval o valors separats per comas.

Superposició de àrees de validació Utilització: ValidationCollection::AreasOverlap Per comprovar conflictes abans d’afegir una nova regla. Les regles que es superposaven poden produir un comportament inesperat a Excel.

No apareix el missatge d’entrada Assegurar ambdues: SetShowInput(true) i de la SetInputMessage("...") Una cadena de missatges buida suprimeix la petició d’entrada encara que SetShowInput(true) s’anomena.

ValidateForSave errors de reportatge Revisar la inconsistència reportada. Les causes comunes inclouen límits de fórmula mancants per a validacions de tipus d’interval i coordenades invalides del terreny de cèl·lula.

Preguntes freqüents

Quins tipus de validació són compatibles?

El ValidationType L’enumeració inclou: WholeNumber, Decimal, List, Date, TextLength, Custom, i Any.

Puc eliminar una regla de validació d’un rang?

Sí, utilitzeu-la. ValidationCollection::RemoveArea(area) eliminar la regla d’un rang, o RemoveACell(row, col) per a una sola cèl·lula.

Puc aplicar la mateixa regla de validació a múltiples intervals?

Sí, truca. Validation::AddArea(area) diverses vegades en el mateix Validation objecció a aplicar-la a intervals addicionals.

Quins estils d’alerta hi ha?

ValidationAlertType inclou: Stop (bloca la entrada invàlida), Warning (adverteix però permet l’entrada), i Information (sols per a una informació).

La validació funciona en temps d’execució o només a Excel?

Les regles de validació de dades s’emmagatzemen en el fitxer XLSX i són aplicades per Excel o un lector compatible. La biblioteca no avalua les restriccions de validesa a l’exécution quan els valors es configuren programàticament.

See Also

 Català