Adatellenőrzéssel való munka

Adatellenőrzéssel való munka

Adatellenőrzéssel való munka

Aspose.Cells FOSS for C++ supports adding cell-level data validation rules to worksheets via the Validation és a következők: ValidationCollection Az osztályok. WorkbookValidator az osztály a mentés előtti következetesség ellenőrzését teszi lehetővé.


Egy érvényesítési szabály hozzáadása

Hozzáférni egy munkalap érvényesítési gyűjteményéhez és új szabályt hozzáadni a következők segítségével: ValidationCollection::Add().A visszaadott adatbázisban a típus, képlet és célterület beállítását. Validation tárgy:

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

Valódási típusok

A Bizottság ValidationType a felsorolás meghatározza az alkalmazható korlátozások típusát:

ValidationTypeLeírás
WholeNumberEgész értékkorlátozás
DecimalA lebegő pontos korlát
ListA képlet vagy tartomány levonható listája
DateIdőérték-korlátozás
TextLengthSzakjegy-hosszúság korlátozása
CustomA képlet alapú vámszabály

Figyelmeztető stílus

A Bizottság ValidationAlertType a validálás hibás állapotában az enumeráció irányítja a megjelenített viselkedést:

AlertStyleA viselkedés
StopA bejegyzés blokkolása és a hiba párbeszéd megjelenítése
WarningFigyelmeztetés megjelenítése; a felhasználó elfogadhatja vagy elutasíthatja
InformationInformációs eszközcsomagot mutat

A riasztási stílus beállításához a következőt kell használni: Validation::SetAlertStyle(ValidationAlertType).


A hitelesítés kérdése egy sejtben

Használat ValidationCollection::GetValidationInCell(row, col) hogy melyik érvényesítési szabály vonatkozik egy adott cellára. Visszaadja a következőket: nullptr ha nincs szabály.


A hitelesítési szabályok eltávolítása

A validáció eltávolítása egy adott cellából vagy tartományból:

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

Előzetes mentés előtti munkafüzet-ellenőrzés

Hívj! WorkbookValidator::ValidateForSave A munkafüzet modelljének a mentés előtt történő következetesség-ellenőrzését automatikusan az alábbi funkció hívja: Workbook::Save de a fejlesztés során önállóan igénybe vehetők:

WorkbookValidator validator;
validator.ValidateForSave(workbook);

Tippek és legjobb gyakorlatok

  • Mindig mindkettőt beállítod. SetFormula1 és a következők: SetFormula2 a tartománytípus-értékelés esetében (WholeNumber, Decimal, Date) az alsó és felső határ meghatározása.
  • Használat SetIgnoreBlank(true) hogy a üres cellák hibát okozás nélkül átmenjenek az érvényesítésen.
  • Hívj! ValidationCollection::AreasOverlap az új szabály hozzáadása előtt ellenőrizze, hogy ugyanazon lapon vannak-e átfedett érvényesítési területek.
  • WorkbookValidator::ValidateForSave a mentéskor belsőleg hívják; az előkészítés során kell felhívni, hogy korai időben felismerhessük a problémákat.

Általános kérdések

A kérdésOkokMegjavítani.
A cellára nem alkalmazott validációNem hozzáadott területHívj! Validation::AddArea(area) a céltartományban
Nem látható a leválasztó menü.SetInCellDropDown(false)Összeállítva SetInCellDropDown(true) a jegyzék érvényesítései esetében
A szabályok átfedéseKét szabály ugyanazon cellákat foglalja magában.Használat AreasOverlap konfliktusok felderítése és megoldása;
A ValidateForSave nem működikModell-inkonszenciátlanságA mentés előtt felülvizsgálja és javítja a jelentett ellentmondást.

API-referencia összefoglaló

Az osztály/módszerLeírás
ValidationCollection::Add()Egy új üres érvényesítési szabály hozzáadása
ValidationCollection::GetValidationInCell(row, col)Keresse meg a cellák érvényesítését
ValidationCollection::RemoveArea(area)A validáció eltávolítása egy tartományból
ValidationCollection::RemoveACell(row, col)A cellából eltávolítani az érvényesítést
ValidationCollection::AreasOverlapEllenőrzés a felülkerekvő validációs területekre vonatkozóan
Validation::SetType(ValidationType)A validálási típus beállításához:
Validation::SetFormula1(expr)A felső határ vagy a listaközpont beállítását
Validation::SetFormula2(expr)A felső határ meghatározása
Validation::AddArea(area)A szabály egy tartományra alkalmazható.
Validation::RemoveArea(area)A szabály eltávolítása a tartományból
Validation::SetAlertStyle(style)A megállás/figyelmeztetés/információs viselkedés beállítását.
WorkbookValidator::ValidateForSaveAz előzetes mentés szerinti következetesség ellenőrzése

Lásd még:

 Magyar