العمل مع التحقق من صحة البيانات
العمل مع التحقق من صحة البيانات
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,Date) لتحديد الحدود السفلية والعليا. - استخدام
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 | التحقق من الاتساق قبل الحفاظ عليه |