Εργασία με την επικύρωση δεδομένων
Εργασία με την επικύρωση δεδομένων
Aspose.Cells FOSS for C++ supports adding cell-level data validation rules to worksheets via the Validation και ValidationCollection Τάξη - Η WorkbookValidator Η τάξη παρέχει μια προ-συντήρηση επαλήθευση συνέπειας.
Προσθέστε έναν κανόνα επικύρωσης
Επισκεφθείτε τη συλλογή επικύρωσης για ένα φύλλο εργασίας και προσθέστε μια νέα αρχή χρησιμοποιώντας ValidationCollection::Add().Προσδιορίστε τον τύπο, τη φόρμουλα και την περιοχή στόχου στο επιστραμμένο Validation Το αντικείμενο:
#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;
}Τύποι επικυρώσεων
Η ValidationType Ο κατάλογος καθορίζει τα είδη των περιορισμών που μπορούν να εφαρμοστούν:
| ValidationType | Περιγραφή |
|---|---|
WholeNumber | Ολοκληρωμένη αξία περιορισμού |
Decimal | Πυροβολισμοί περιορισμός |
List | Κατάλογος αποσυνδέσεων από μια φόρμουλα ή εύρος |
Date | Ημερομηνία περιορισμού |
TextLength | Σκληρή διάρκεια περιορισμού |
Custom | Ο κανόνας της φόρμουλας |
Στυλ προειδοποίησης
Η ValidationAlertType Η κατάταξη ελέγχει τη συμπεριφορά που εμφανίζεται όταν η επικύρωση αποτυγχάνει:
| AlertStyle | συμπεριφοράς |
|---|---|
Stop | Κλείνει την είσοδο και εμφανίζει διάλογο σφάλματος |
Warning | Εμφάνιση προειδοποίησης: ο χρήστης μπορεί να αποδεχθεί ή να αρνηθεί |
Information | Εμφάνιση ενός ενημερωτικού εργαλείου |
Εισάγετε το στυλ συναγερμού με Validation::SetAlertStyle(ValidationAlertType).
Εγκρίσεις σε ένα κελί
Χρησιμοποιήστε ValidationCollection::GetValidationInCell(row, col) να βρει ποια κανόνα επικύρωσης ισχύει για ένα συγκεκριμένο κελί. nullptr Αν δεν ισχύει κανένας κανόνας.
Αφαίρεση κανόνων επικύρωσης
Αφαιρέστε μια επικύρωση από ένα συγκεκριμένο κύτταρο ή περιοχή εύρους:
CellArea area = CellArea::CreateCellArea("B2", "B10");
validations.RemoveArea(area);
// Or remove a single cell:
validations.RemoveACell(1, 1); // row=1, col=1 (0-based)
Προ-Συγχώρηση Βελτίωση Εργαστηρίου
Κλήση WorkbookValidator::ValidateForSave να εκτελέσει μια επαλήθευση συνέπειας στο μοντέλο του βιβλίου εργασίας πριν από την αποθήκευση. αυτό ονομάζεται αυτόματα με το Workbook::Save Μπορεί να προκληθεί ανεξάρτητα κατά τη διάρκεια της ανάπτυξης:
WorkbookValidator validator;
validator.ValidateForSave(workbook);Συμβουλές και βέλτιστες πρακτικές
- Πάντα να βάζεις και τα δύο
SetFormula1καιSetFormula2Για την επιλογή των διαφόρων τύπων (WholeNumber,Decimal,Date1) Να καθορίσουν τα κατώτερα και ανώτερα όρια. - Χρησιμοποιήστε
SetIgnoreBlank(true)να επιτρέπουν σε κενά κύτταρα να περάσουν επικύρωση χωρίς να προκαλέσει ένα σφάλμα. - Κλήση
ValidationCollection::AreasOverlapΠριν προσθέσετε μια νέα αρχή για να ελέγξετε για τις περιοχές επικύρωσης που υπερβαίνουν στο ίδιο φύλλο. WorkbookValidator::ValidateForSaveκαλείται εσωτερικά για την αποθήκευση. να τον καλέσει κατά τη διάρκεια της ανάπτυξης για να συλλάβει τα προβλήματα νωρίς.
κοινά ζητήματα
| Θέμα | Αιτία | ΦΙΛΕΞΗ |
|---|---|---|
| Η επικύρωση δεν εφαρμόζεται στο κελί | Τοποθεσία δεν προστίθεται | Κλήση Validation::AddArea(area) Με το στόχο της περιοχής |
| Δράση-Δεν δείχνει | SetInCellDropDown(false) | ΣΕΤΙΔΑ SetInCellDropDown(true) Για την επικύρωση της λίστας |
| Οι κανόνες υπερβαίνουν | Δύο κανόνες καλύπτουν τα ίδια κύτταρα | Χρησιμοποιήστε AreasOverlap -Ανακαλύψτε και να επιλύσετε τις συγκρούσεις |
| Εξέλιξη αποτυγχάνει | Μοντέλο Αδιαφορία | Εξετάστε και διορθώστε την αναφερόμενη αντιστοιχία πριν από τη διατήρηση |
Συνοπτική αναφορά API
| Τάξη / Μέθοδος | Περιγραφή |
|---|---|
ValidationCollection::Add() | Προσθήκη νέας ίχνης επικύρωσης |
ValidationCollection::GetValidationInCell(row, col) | Βρείτε επικύρωση για ένα κελί |
ValidationCollection::RemoveArea(area) | Αφαιρέστε την επικύρωση από μια σειρά |
ValidationCollection::RemoveACell(row, col) | Απομακρύνει την επικύρωση από ένα κελί |
ValidationCollection::AreasOverlap | Ελέγξτε τις περιοχές επικύρωσης που υπερβαίνουν το επίπεδο |
Validation::SetType(ValidationType) | Εισάγετε τον τύπο επικύρωσης |
Validation::SetFormula1(expr) | Κατώτερη γραμμή ή πηγή λίστας |
Validation::SetFormula2(expr) | Σημειώνεται ανώτερος δεσμός |
Validation::AddArea(area) | Εφαρμόστε τον κανόνα σε μια σειρά |
Validation::RemoveArea(area) | Αφαιρέστε τον κανόνα από μια σειρά |
Validation::SetAlertStyle(style) | Εισαγωγή / προειδοποίηση / συμπεριφορά ενημέρωσης |
WorkbookValidator::ValidateForSave | Προ-συντήρηση Συνοχή Ελέγχου |