Làm việc với Data Validation

Làm việc với Data Validation

Làm việc với Data Validation

Aspose.Cells FOSS for C++ supports adding cell-level data validation rules to worksheets via the ValidationValidationCollection lớp học - The WorkbookValidator lớp cung cấp một kiểm tra sự nhất quán trước khi tiết kiệm.


Thêm một quy tắc xác nhận

Truy cập bộ sưu tập xác thực cho một bảng tính và thêm một quy tắc mới bằng cách sử dụng ValidationCollection::Add().Thiết lập loại, công thức và khu vực mục tiêu trên phần trả về Validation đối tượng :

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

Loại Validation

Các ValidationType Danh sách xác định các loại hạn chế có thể được áp dụng:

ValidationTypeDescription
WholeNumberGiá trị toàn bộ giới hạn
DecimalFloating Point hạn chế
ListDanh sách drop-down từ một công thức hoặc phạm vi
DateGiá trị ngày hạn chế
TextLengthDung lượng hạn chế
CustomQuy tắc cá nhân dựa trên công thức

Lời cảnh báo Style

Các ValidationAlertType Danh sách kiểm soát hành vi được hiển thị khi xác thực thất bại:

AlertStyleBehavior
StopKhóa vào và hiển thị một giao tiếp lỗi
WarningHiển thị cảnh báo; người dùng có thể chấp nhận hoặc từ chối
InformationHiển thị một công cụ thông tin

Thiết lập kiểu cảnh báo với Validation::SetAlertStyle(ValidationAlertType).


Tìm kiếm xác thực trong một tế bào

Sử dụng ValidationCollection::GetValidationInCell(row, col) để tìm ra quy tắc xác thực nào áp dụng cho một ô cụ thể. nullptr Nếu không có quy tắc nào được áp dụng.


Xóa quy tắc xác thực

Xóa một xác thực từ một ô hoặc phạm vi cụ thể:

CellArea area = CellArea::CreateCellArea("B2", "B10");
validations.RemoveArea(area);
// Or remove a single cell:
validations.RemoveACell(1, 1); // row=1, col=1 (0-based)

Sửa sổ Workbook Validation

Call WorkbookValidator::ValidateForSave để chạy một kiểm tra sự nhất quán trên mô hình sổ làm việc trước khi tiết kiệm. điều này được gọi là tự động bởi Workbook::Save Nhưng có thể được đề cập độc lập trong quá trình phát triển:

WorkbookValidator validator;
validator.ValidateForSave(workbook);

Mẹo và Thực hành Tốt nhất

  • Luôn đặt cả hai SetFormula1SetFormula2 Đối với các loại xác nhận (WholeNumber, Decimal, Date1) Tính định các giới hạn thấp hơn và cao hơn.
  • Sử dụng SetIgnoreBlank(true) để cho phép các tế bào trống vượt qua xác thực mà không gây ra lỗi.
  • Call ValidationCollection::AreasOverlap trước khi thêm một quy tắc mới để kiểm tra các khu vực xác thực trên cùng một tấm.
  • WorkbookValidator::ValidateForSave được gọi trong nội bộ để cứu; kêu gọi nó trong quá trình phát triển để bắt các vấn đề sớm.

Các vấn đề thường gặp

IssueCauseFix Đặt
- Chứng nhận không áp dụng cho ôKhu vực không được thêm vàoCall Validation::AddArea(area) Với mục tiêu khung
Drop-down không hiển thịSetInCellDropDown(false)Set Đặt SetInCellDropDown(true) Danh sách Validations
Quy tắc Overlap2 quy tắc bao gồm các tế bào tương tựSử dụng AreasOverlap Khám phá và giải quyết xung đột
Lời bài hát: FailureModel bất đồngXem xét và sửa chữa sự không liên tục được báo cáo trước khi tiết kiệm

Tóm tắt Tham chiếu API

lớp học / phương phápDescription
ValidationCollection::Add()Thêm một quy tắc xác thực trống mới
ValidationCollection::GetValidationInCell(row, col)Tìm xác nhận cho một ô
ValidationCollection::RemoveArea(area)Xóa xác thực từ một phạm vi
ValidationCollection::RemoveACell(row, col)Xóa xác thực từ một ô
ValidationCollection::AreasOverlapKiểm tra các khu vực xác thực quá tải
Validation::SetType(ValidationType)Thiết lập loại xác nhận
Validation::SetFormula1(expr)Thiết lập giới hạn thấp hơn hoặc nguồn danh sách
Validation::SetFormula2(expr)Lắp đặt upper bound
Validation::AddArea(area)- Sử dụng quy tắc cho một phạm vi
Validation::RemoveArea(area)Xóa quy tắc từ một phạm vi
Validation::SetAlertStyle(style)Thiết lập Stop / Warning / Information Behavior
WorkbookValidator::ValidateForSaveKiểm tra sự nhất quán Pre-Save

See Also

 Tiếng Việt