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:
| ValidationType | Leírás |
|---|---|
WholeNumber | Egész értékkorlátozás |
Decimal | A lebegő pontos korlát |
List | A képlet vagy tartomány levonható listája |
Date | Időérték-korlátozás |
TextLength | Szakjegy-hosszúság korlátozása |
Custom | A 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:
| AlertStyle | A viselkedés |
|---|---|
Stop | A bejegyzés blokkolása és a hiba párbeszéd megjelenítése |
Warning | Figyelmeztetés megjelenítése; a felhasználó elfogadhatja vagy elutasíthatja |
Information | Informá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:SetFormula2a 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::AreasOverlapaz új szabály hozzáadása előtt ellenőrizze, hogy ugyanazon lapon vannak-e átfedett érvényesítési területek. WorkbookValidator::ValidateForSavea 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és | Okok | Megjavítani. |
|---|---|---|
| A cellára nem alkalmazott validáció | Nem hozzáadott terület | Hí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ése | Két szabály ugyanazon cellákat foglalja magában. | Használat AreasOverlap konfliktusok felderítése és megoldása; |
| A ValidateForSave nem működik | Modell-inkonszenciátlanság | A mentés előtt felülvizsgálja és javítja a jelentett ellentmondást. |
API-referencia összefoglaló
| Az osztály/módszer | Leí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::AreasOverlap | Ellenő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::ValidateForSave | Az előzetes mentés szerinti következetesség ellenőrzése |