كيفية إضافة التحقق من صحة البيانات إلى جدول بيانات في C ++

كيفية إضافة التحقق من صحة البيانات إلى جدول بيانات في C ++

Aspose.Cells FOSS for C++ supports cell-level data validation rules that constrain what values users can enter in specific cells or ranges. The Validation, ValidationCollection,، و WorkbookValidator فئات تشكل واجهة برمجة التحقق من صحة.

خطوة بخطوة دليل

الخطوة 1: إعداد البناء

cmake_minimum_required(VERSION 3.15)
project(DataValidation CXX)
set(CMAKE_CXX_STANDARD 17)

add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)
add_executable(DataValidation main.cpp)
target_link_libraries(DataValidation PRIVATE Aspose.Cells.Foss.Cpp)

الخطوة 2: إدراج الأقواس المطلوبة

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

الخطوة 3: الوصول إلى مجموعة التحقق من صحة المعلومات

استعادة الملفات ValidationCollection من ورقة العمل:

int main() {
    Workbook workbook;
    Worksheet& sheet = workbook.GetWorksheets()[0];
    ValidationCollection& validations = sheet.GetValidations();
    return 0;
}

الخطوة 4: إضافة قاعدة التحقق من صحة المعلومات

اتصلوا ValidationCollection::Add() وترتيب المرجع Validation المادة:

int idx = validations.Add();
Validation& v = validations[idx];

v.SetType(ValidationType::WholeNumber);
v.SetFormula1("1");
v.SetFormula2("100");
v.SetIgnoreBlank(true);
v.SetInputTitle("Enter Quantity");
v.SetInputMessage("Enter a whole number between 1 and 100.");
v.SetErrorTitle("Invalid Input");
v.SetErrorMessage("Value must be between 1 and 100.");
v.SetShowInput(true);
v.SetShowError(true);
v.SetAlertStyle(ValidationAlertType::Stop);

الخطوة 5: تطبيق القاعدة على نطاق

إرفق التحقق من صحة إلى: CellArea استخدام Validation::AddArea:

CellArea area = CellArea::CreateCellArea("B2", "B20");
v.AddArea(area);

الخطوة 6: حفظ الكتاب

workbook.Save("validated.xlsx");
workbook.Dispose();

الخطوة 7: تشغيل التحقق من صحة الاحتفاظ المسبق (اختياري)

اتصلوا WorkbookValidator::ValidateForSave أثناء التطوير لالتقاط مشاكل النموذج قبل الاحتفاظ بها:

WorkbookValidator validator;
validator.ValidateForSave(workbook);
workbook.Save("validated.xlsx");

مشكلات و تصحيحات مشتركة

لا يمكن رؤية التحقق من صحة في الملف المحفوظ تأمين Validation::AddArea(area) يتم استدعاء القاعدة بعد تهيئةها. قاعدة بدون منطقة مرتبطة لا تصدر سلسلة.

قائمة المرفوعة غير موجودة المجموعة v.SetInCellDropDown(true) ووضع v.SetType(ValidationType::List) مع SetFormula1 يشير إلى نطاق أو قيم منفصلة عن طريق الأقساط.

مناطق التحقق من الصحة المتداخلة استخدام ValidationCollection::AreasOverlap للتحقق من وجود خلافات قبل إضافة قاعدة جديدة. القواعد المتداخلة قد تنتج سلوكًا غير متوقع في Excel.

لا توجد رسالة إدخال تأكد من كليهما SetShowInput(true) و SetInputMessage("...") يتم تعيينها. سلاسل الرسائل الفارغة تقمع طلب الإدخال حتى لو SetShowInput(true) يسمى.

ValidateForSave تقارير الأخطاء استعراض عدم التناسق المبلغ عنه. الأسباب الشائعة تشمل الحدود النموذجية المفقودة للتحقق من صحة نوع نطاق و إحداثيات منطقة الخلية غير صالحة.

الأسئلة المتكررة

ما هي أنواع التحقق من صحة المعلومات المدعومة؟?

المجلس الوزاري ValidationType تشمل هذه القائمة: WholeNumber, Decimal, List, Date, TextLength, Custom,، و Any.

هل يمكنني إزالة قاعدة التحقق من نطاق؟?

نعم، استخدمها. ValidationCollection::RemoveArea(area) لإزالة القاعدة من نطاق، أو RemoveACell(row, col) خلية واحدة.

هل يمكنني تطبيق قاعدة التحقق من صحة نفسها على نطاقات متعددة؟?

نعم، اتصل. Validation::AddArea(area) عدة مرات على نفس الشيء Validation اعترض على تطبيقه على نطاقات إضافية.

ما هي أنماط الإنذار المتاحة؟?

ValidationAlertType يتضمن: Stop (يحجب إدخال غير صحيح) ،, Warning (يحذر ولكن يسمح بالدخول) ، و Information (معلوماتية فقط).

هل يعمل التحقق من صحة العمل في وقت تشغيل، أم فقط في Excel؟?

قواعد التحقق من صحة البيانات مخزنة في ملف XLSX وتطبيقها بواسطة Excel أو قارئ متوافق. المكتبة لا تقيم قيود التأكيد على صحتها أثناء تشغيل عندما يتم تعيين القيم برمجياً.

انظر أيضا

 العربية