עבודה עם אימות נתונים
עבודה עם אימות נתונים
Aspose.Cells FOSS for C++ supports adding cell-level data validation rules to worksheets via the Validation ו ValidationCollection שיעורים – The Classes 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;
}סוגים של אימות
The ValidationType הרשימה מגדירה את הסוגים של הגבלות שניתן ליישם:
| ValidationType | תיאור |
|---|---|
WholeNumber | הגבלת ערך מלאה |
Decimal | נקודת המגבלה |
List | רשימת דפיקות מתוך נוסחה או טווח |
Date | הגבלת הערך של תאריך |
TextLength | קצב אורך מוגבל |
Custom | טופס מבוסס חוקי |
סגנון אזהרה
The 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)
תגית: Pre-Save Workbook Validation
שיחת טלפון WorkbookValidator::ValidateForSave כדי לבצע בדיקת עקביות על מודל ספר העבודה לפני חיסכון.זה נקרא באופן אוטומטי על ידי Workbook::Save ניתן להזמין באופן עצמאי במהלך הפיתוח:
WorkbookValidator validator;
validator.ValidateForSave(workbook);טיפים ושיטות טובות
- תמיד להגדיר את שניהם
SetFormula1וSetFormula2על פי ההערכות של ה-Range (WholeNumber,Decimal,Date• הגדרת גבולות הנמוכים והגבוהים. - שימוש
SetIgnoreBlank(true)כדי לאפשר לתאים ריקים לעבור את ההסמכה מבלי לגרום לטעות. - שיחת טלפון
ValidationCollection::AreasOverlapלפני הוספת כלל חדש לבדוק אם אזורי ההסמכה על אותו לוח. WorkbookValidator::ValidateForSaveהוא נקרא פנימי על הצלה; להזמין אותו במהלך הפיתוח כדי לתפוס בעיות מוקדם.
בעיות נפוצות
| נושא | סיבה | קבע |
|---|---|---|
| אימות שאינו מיושם לתא | אזור לא הוסיף | שיחת טלפון Validation::AddArea(area) עם היקף המטרה |
| Drop-down לא מראה | SetInCellDropDown(false) | סדנה SetInCellDropDown(true) רשימת אימותים |
| חוקים מעל | שתי כללים מכסים את אותם תאים. | שימוש AreasOverlap לזהות ולפתור סכסוכים |
| פגיעה ב-FALIDATE | מודל אי-קונסמינציה | בדוק ותקן את חוסר ההתאמה שדווח לפני חיסכון |
סיכום התייחסות 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 | בדיקת עקביות מראש |