کار با اعتباربخشی داده ها
کار با اعتباربخشی داده ها
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;
}نوع اعتباربخشی
و این ValidationType در این فهرست نوع محدودیت هایی که می توان اعمال کرد را تعریف می کنیم:
| ValidationType | Description |
|---|---|
WholeNumber | محدودیت ارزش کامل |
Decimal | نقطه محدودیت پرواز |
List | لیست پایین از فرمول یا محدوده |
Date | محدودیت تاریخ |
TextLength | محدودیت طولانی مدت |
Custom | فرمول مبتنی بر قاعده |
سبک هشدار دهنده
و این ValidationAlertType فهرست رفتار نشان داده شده در صورت شکست تایید را کنترل می کند:
| AlertStyle | Behavior |
|---|---|
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)
پیش ذخیره کتاب کار اعتباربخشی
Call WorkbookValidator::ValidateForSave برای انجام یک بررسی سازگاری در مدل کتاب کار قبل از صرفه جویی.این به طور خودکار توسط Workbook::Save اما می توان به طور مستقل در طول توسعه درخواست کرد:
WorkbookValidator validator;
validator.ValidateForSave(workbook);راهنمایی ها و بهترین شیوه ها
- همیشه هر دو را تنظیم کنید.
SetFormula1وSetFormula2برای ثبت نام در محدوده (WholeNumber,Decimal,Dateبرای تعیین محدودیت های پایین و بالا. - استفاده از
SetIgnoreBlank(true)اجازه دادن به سلول های خالی برای گذراندن اعتبار بدون ایجاد یک خطا. - Call
ValidationCollection::AreasOverlapقبل از اضافه کردن یک قاعده جدید برای بررسی مناطق تایید بیش از حد در همان ورق. WorkbookValidator::ValidateForSaveبه طور داخلی در نجات فراخوانده می شود؛ آن را در طول توسعه برای گرفتن مشکلات زود است.
مسائل مشترک
| Issue | Cause | اصلاحی |
|---|---|---|
| تایید در سلول اعمال نمی شود | منطقه اضافه نشده | Call Validation::AddArea(area) با هدف قرار دادن محدوده |
| دانلود بدون نمایش | SetInCellDropDown(false) | تنظیمات SetInCellDropDown(true) برای اعتباربخشی لیست |
| قوانین فراوان | دو قاعده شامل همان سلول ها می شود. | استفاده از AreasOverlap برای شناسایی و حل اختلافات |
| فایده های نقدی | مدل عدم سازگاری | بررسی و اصلاح عدم سازگاری گزارش شده قبل از صرفه جویی |
API خلاصه ای از ارجاعات
| کلاس / روش | Description |
|---|---|
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 | بررسی پیش ذخیره سازی |