Arbeta med datavalidering

Arbeta med datavalidering

Arbeta med datavalidering

Aspose.Cells FOSS for C++ supports adding cell-level data validation rules to worksheets via the Validation och ValidationCollection Klasser - Den WorkbookValidator Klassen ger en förskottsbevarande konsistenscheck.


Lägg till en valideringsregel

Gå till valideringsmallen för ett arbetsblad och lägg till en ny regel med hjälp av ValidationCollection::Add().Ställ in typ, formel och målområde på den returnerade Validation Objektet är:

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

Valideringstyper

Den ValidationType Förteckningen definierar de typer av begränsningar som kan tillämpas:

ValidationTypeBeskrivning
WholeNumberInnehållsvärde begränsat
DecimalFloating-punkten begränsas
ListDrop-down list från en formel eller sortiment
DateDatum värde begränsas
TextLengthSträng längd begränsning
CustomFormelbaserad standardregler

Varningsstil

Den ValidationAlertType listan kontrollerar beteendet som visas när valideringen misslyckas:

AlertStyleBehavior
StopBlockerar inmatning och visar en feldialog
WarningVisa en varning; användaren kan acceptera eller avvisa
InformationVisa ett informationsverktyg

Ställ in alert style med Validation::SetAlertStyle(ValidationAlertType).


Sök validering i en cell

Användning ValidationCollection::GetValidationInCell(row, col) att ta reda på vilken valideringsregel som gäller för en viss cell. nullptr Om inga regler gäller.


Avskaffande Valideringsregler

Ta bort en validering från ett visst cellt eller intervallet:

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

Försäljning av Workbook Validation

Call WorkbookValidator::ValidateForSave att köra en konsistenscheck på arbetsbokmodellen innan spara. Detta kallas automatiskt för Workbook::Save Men kan inbjudas oberoende under utveckling:

WorkbookValidator validator;
validator.ValidateForSave(workbook);

Tips och bästa praxis

  • Alltid sätta båda SetFormula1 och SetFormula2 för validering av typ (WholeNumber, Decimal, Date1) att definiera de nedre och övre gränserna.
  • Användning SetIgnoreBlank(true) tillåta tomma celler att passera validering utan att utlösa ett fel.
  • Call ValidationCollection::AreasOverlap innan du lägger till en ny regel för att kontrollera om valideringsområden överlappar på samma blad.
  • WorkbookValidator::ValidateForSave kallas internalt på spara; uppmanar det under utveckling att fånga problem tidigt.

Vanliga frågor

IssueCauseFixar
Validering som inte tillämpas på cellernaOmråde inte läggs tillCall Validation::AddArea(area) med målsidan
Drop-down inte visarSetInCellDropDown(false)Setade SetInCellDropDown(true) För listvalidering
Regler överlapparTvå regler som täcker samma cellerAnvändning AreasOverlap Att upptäcka och lösa konflikter
ValidateForSave misslyckasModellkonjunkturÖvervaka och fixa rapporterade oenighet innan spara

API Referens sammanfattning

Klass / MetodBeskrivning
ValidationCollection::Add()Lägg till en ny tom valideringsregel
ValidationCollection::GetValidationInCell(row, col)Hitta validering för en cell
ValidationCollection::RemoveArea(area)Ta bort validering från ett sortiment
ValidationCollection::RemoveACell(row, col)Ta bort validering från en cell
ValidationCollection::AreasOverlapKontrollera överlappande valideringsområden
Validation::SetType(ValidationType)Ställ in valideringstypen
Validation::SetFormula1(expr)Ställ in lägre gränsen eller listkälla
Validation::SetFormula2(expr)Uppe länk
Validation::AddArea(area)Applicera regeln till en ränta
Validation::RemoveArea(area)Ta bort regeln från en runda
Validation::SetAlertStyle(style)Ställ in stopp/varning/information beteende
WorkbookValidator::ValidateForSaveFörsäljning konsistenscheck

Se även

 Svenska