Treballar amb la validació de dades

Treballar amb la validació de dades

Treballar amb la validació de dades

Aspose.Cells FOSS for C++ supports adding cell-level data validation rules to worksheets via the Validation i de la ValidationCollection Les classes. WorkbookValidator la classe proporciona una verificació de coherència prèvia a l’enregistrament.


Ajuntar una regla de validació

Accedeix a la col·lecció de validació d’ una fitxa i afegir una nova regla utilitzant ValidationCollection::Add(). Configurar el tipus, la fórmula i l’àrea objectiu en el retorn de les dades. Validation objecte:

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

Tipus de validació

El ValidationType L’enumeració defineix els tipus de restriccions que es poden aplicar:

ValidationTypeDescription
WholeNumberConstrenció de valor enteru
DecimalConstrenció de punt flotant
ListLista desplegable d’una fórmula o gamma
DateConstrenció de valor de data
TextLengthRestricció de longitud de cadena
CustomRegla de costum basada en fórmula

Estilo d’alerta

El ValidationAlertType Enumeration controla el comportament mostrat quan la validació falla:

AlertStyleBehavior
StopBloqueja l’entrada i mostra un diàleg d’error
WarningMostra un avís; l’usuari pot acceptar o rebutjar
InformationMostra una guia d’informació

Configurar l’estil d’alerta amb: Validation::SetAlertStyle(ValidationAlertType).


Requerir la validació en una cèl·lula

Utilització: ValidationCollection::GetValidationInCell(row, col) Per trobar quina regla de validació s’aplica a una cel·la específica. Retorna nullptr si no s’aplica cap regla.


Eliminació de les regles de validació

Retirar una validació d’una cel·la o zona específica:

CellArea area = CellArea::CreateCellArea("B2", "B10");
validations.RemoveArea(area);
// Or remove a single cell:
validations.RemoveACell(1, 1); // row=1, col=1 (0-based)

Validació de llibres d’obra abans de guardar

Call WorkbookValidator::ValidateForSave Per executar una comprovació de coherència en el model del llibre de treball abans d’estalviar. Això es diu automàticament per: Workbook::Save però es pot invocar de forma independent durant el desenvolupament:

WorkbookValidator validator;
validator.ValidateForSave(workbook);

Consells i millors pràctiques

  • Sempre posar ambdues. SetFormula1 i de la SetFormula2 per a les validacions de tipus d’interval (WholeNumber, Decimal, Date) per definir els límits inferior i superior.
  • Utilització: SetIgnoreBlank(true) Per permetre que les cèl·lules buides passi la validació sense provocar un error.
  • Call ValidationCollection::AreasOverlap abans d’afegir una nova regla per comprovar si hi ha zones de validació que es superposin en la mateixa ficha.
  • WorkbookValidator::ValidateForSave és cridat internament en salvar; invocar-lo durant el desenvolupament per detectar problemes de manera primerenca.

Problemàtiques comuns

IssueCauseCorrecció
Validació no aplicada a la cel·laSuperfície no afegidaCall Validation::AddArea(area) amb el rang objectiu
No apareix el cartell de baixadaSetInCellDropDown(false)Set de punts SetInCellDropDown(true) per a les validacions de llistes
Sovracorrecció de les normesDues regles cobreixen les mateixes cel·les.Utilització: AreasOverlap detectar i resoldre conflictes;
No s’ha aconseguit validar per guardarIncoherència del modelRevisar i corregir la inconsistència comunicada abans de guardar.

Resum de referència d’API

Classe/mètodeDescription
ValidationCollection::Add()Afegir una nova regla de validació buida
ValidationCollection::GetValidationInCell(row, col)Buscar la validació d’una cèl·lula
ValidationCollection::RemoveArea(area)Eliminar la validació d’un interval
ValidationCollection::RemoveACell(row, col)Eliminar la validació d’una cel·la
ValidationCollection::AreasOverlapVerificació de superposició d’àrees de validació
Validation::SetType(ValidationType)Ajustar el tipus de validació
Validation::SetFormula1(expr)Ajustar el límit inferior o la font de listes
Validation::SetFormula2(expr)Ajustar el límit superior
Validation::AddArea(area)Aplicar la regla a un interval
Validation::RemoveArea(area)Eliminar la regla d’un interval
Validation::SetAlertStyle(style)Ajustar el comportament d’atur/advertiment/informació
WorkbookValidator::ValidateForSaveVerificació de la coherència abans d’emmagatzemar

See Also

 Català