การทํางานกับการตรวจสอบข้อมูล

การทํางานกับการตรวจสอบข้อมูล

การทํางานกับการตรวจสอบข้อมูล

Aspose.Cells FOSS for C++ supports adding cell-level data validation rules to worksheets via the Validation และ ValidationCollection ช่วงเรียน WorkbookValidator class ให้การตรวจสอบความเป็นไปตามก่อนบันทึกไว้.


เพิ่มกฎการยืนยันความถูกต้อง

เข้าไปยังการตรวจสอบความถูกต้องของตารางงาน และเพิ่มกฎใหม่โดยใช้ 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 การนับจํานวนกําหนดประเภทของข้อจํากัดที่สามารถนําไปใช้ได้:

ValidationTypeDescription
WholeNumberข้อจํากัดค่าเต็ม
Decimalการกักขวางจุดลอย
Listรายการหลุดจากสูตรหรือระยะ
Dateความจํากัดค่าวันที่
TextLengthการจํากัดความยาวของเส้น
Customกฎตามธรรมเนียม

สไตล์เตือน

การ ValidationAlertType การนับจํานวนควบคุมพฤติกรรมที่แสดงเมื่อการตรวจสอบความถูกต้องล้มเหลว:

AlertStyleBehavior
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 เรียกภายในในการเก็บ; ร้องเรียกมันระหว่างการพัฒนาเพื่อจับปัญหาได้เร็ว.

ปัญหาทั่วไป

IssueCauseแก้ไข
การยืนยันที่ไม่ได้ใช้กับเซลล์พื้นที่ไม่เพิ่มCall Validation::AddArea(area) กับระยะเป้าหมาย
รายการไม่แสดงSetInCellDropDown(false)เซ็ต SetInCellDropDown(true) สําหรับการตรวจสอบรายชื่อ
กฎหมายที่ซ้อนกันกฎสองกรอบครอบคลุมช่องเดียวกันการใช้งาน AreasOverlap การตรวจสอบและแก้ไขความขัดแย้ง
ValidateForSave ไม่สําเร็จความไม่สอดคล้องของแบบจําลองลงประกาศการตรวจสอบและแก้ไขความไม่เป็นไปตามที่แจ้งก่อนบันทึก

คําอธิบายการพบบ่อย 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การตรวจสอบความเป็นไปตามก่อนการบันทึก

See Also

 ภาษาไทย