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.