Lucrarea cu validarea datelor

Lucrarea cu validarea datelor

Lucrarea cu validarea datelor

Aspose.Cells FOSS for C++ supports adding cell-level data validation rules to worksheets via the Validation și de: ValidationCollection Cursurile. WorkbookValidator clasa oferă o verificare a coerenței înainte de salvare.


Adăugarea unei reguli de validare

Accesați colectia de validare pentru o foaie de lucru și adăugați o nouă regulă folosind ValidationCollection::Add().Setarea tipului, formula și zona țintă pe retur Validation Obiectul:

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

Tipuri de validare

În ceea ce priveşte ValidationType enumerarea definește tipurile de constrângeri care pot fi aplicate:

ValidationTypeDescriere:
WholeNumberConstrângere de valoare întreagă
DecimalConstrângere cu punct de plutire
ListLista descărcată dintr-o formulă sau o gamă de date
DateConstrângere pentru valoarea datei
TextLengthConstrângere de lungime a șirului
CustomRegula de tip obișnuit bazată pe formule

Stil de alertă

În ceea ce priveşte ValidationAlertType enumerarea controlează comportamentul prezentat atunci când validarea nu reușește:

AlertStyleComportamentul
StopBlochează accesul şi arată un dialog de erori .
WarningArată un avertisment; utilizatorul poate accepta sau respinge
InformationArată un sfat de instrument informativ

Setarea stilului de alertă cu: Validation::SetAlertStyle(ValidationAlertType).


Interogarea validării într-o celulă

Utilizare: ValidationCollection::GetValidationInCell(row, col) pentru a găsi care regula de validare se aplică unei celule specifice. nullptr dacă nu se aplică nicio regulă.


Îndepărtarea regulilor de validare

Îndepărtarea unei validări dintr-o anumită celulă sau zonă de intervale:

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

Validarea cărții de lucru înainte de salvare

Sună-mă. WorkbookValidator::ValidateForSave pentru a rula o verificare de consecvență pe modelul cărții de lucru înainte de salvare. Acest lucru este chemat automat prin Workbook::Save dar poate fi invocată independent în timpul dezvoltării:

WorkbookValidator validator;
validator.ValidateForSave(workbook);

Sfaturi şi cele mai bune practici

  • Întotdeauna setat ambele SetFormula1 și de: SetFormula2 pentru validările de tip gama (WholeNumber, Decimal, Date) pentru a defini limita inferioară și cea superioara.
  • Utilizare: SetIgnoreBlank(true) să permită celulelor goale să treacă validarea fără a declanșa o eroare.
  • Sună-mă. ValidationCollection::AreasOverlap înainte de adăugarea unei noi reguli pentru a verifica suprapunerea zonelor de validare pe aceeași foaie.
  • WorkbookValidator::ValidateForSave este chemată intern la salvarea; apelați-o în timpul dezvoltării pentru a detecta problemele devreme.

Probleme comune

Numărul de dateCauzaFixare
Validarea nu se aplică celuleiSuprafață neîncărcatăSună-mă. Validation::AddArea(area) cu intervalul țintă
Nu apare lista de descărcareSetInCellDropDown(false)Setare SetInCellDropDown(true) pentru validarea listelor
Suprapusează-se regulileDouă reguli acoperă aceleași celule.Utilizare: AreasOverlap detectarea și soluționarea conflictelor;
ValidateForSave nu funcționează.Incoerență a modeluluiRevizuirea și corectarea neconcordanței raportate înainte de salvare.

Rezultatele de la data aplicării.

Clasa/MetodaDescriere:
ValidationCollection::Add()Adăuga o nouă regulă de validare goală
ValidationCollection::GetValidationInCell(row, col)Găsiți validarea pentru o celulă
ValidationCollection::RemoveArea(area)Îndepărtați validarea dintr-o gamă
ValidationCollection::RemoveACell(row, col)Îndepărtați validarea dintr-o celulă
ValidationCollection::AreasOverlapVerificarea suprapunerii zonelor de validare
Validation::SetType(ValidationType)Setarea tipului de validare
Validation::SetFormula1(expr)Setarea limitei inferioare sau a sursei listei
Validation::SetFormula2(expr)Setarea limitei superioare
Validation::AddArea(area)Aplicați regula la o gamă de date.
Validation::RemoveArea(area)Îndepărtați regula dintr-o gamă
Validation::SetAlertStyle(style)Setarea comportamentului de oprire/avertisment/informație
WorkbookValidator::ValidateForSaveVerificarea coerenței înainte de salvare

Vezi și:

 Română