Làm thế nào để thêm xác thực dữ liệu vào một bảng điều khiển trong C++

Làm thế nào để thêm xác thực dữ liệu vào một bảng điều khiển trong 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, và WorkbookValidator Các lớp học tạo thành API xác thực.

Hướng dẫn từng bước

Bước 1: Tạo dựng xây dựng

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)

Bước 2: Bao gồm các tiêu đề cần thiết

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

Bước 3: Truy cập bộ sưu tập xác thực

Retrieve các ValidationCollection Từ sổ làm việc:

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

Bước 4: Thêm quy tắc xác thực

Call ValidationCollection::Add() và xác định lại được trả về Validation đối tượng :

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

Bước 5: áp dụng quy tắc cho một phạm vi

Đặt xác nhận vào A CellArea Sử dụng Validation::AddArea:

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

Bước 6: Lưu sổ làm việc

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

Bước 7: Thực hiện Validation Pre-Save (Tùy chọn)

Call WorkbookValidator::ValidateForSave trong quá trình phát triển để bắt các vấn đề mô hình trước khi tiết kiệm:

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

Các vấn đề chung và Fixes

- Chứng nhận không hiển thị trong tệp được lưu trữ Ensure Validation::AddArea(area) được gọi sau khi cấu hình quy tắc. một quy định không có khu vực liên quan không được phân loại.

Drop-down danh sách không hiển thị Set Đặt v.SetInCellDropDown(true) và Set v.SetType(ValidationType::List) Với SetFormula1 chỉ ra một phạm vi hoặc các giá trị chia tay.

Các lĩnh vực xác thực quá tải Sử dụng ValidationCollection::AreasOverlap để kiểm tra các xung đột trước khi thêm một quy tắc mới. Overlapping quy định có thể tạo ra hành vi bất ngờ trong Excel.

Thông điệp nhập không xuất hiện Bảo đảm cả hai SetShowInput(true)SetInputMessage("...") Một dòng thông điệp trống sẽ gắt nhanh vào ngay cả khi bạn SetShowInput(true) được gọi.

ValidateForSave báo cáo sai lầm Các nguyên nhân phổ biến bao gồm thiếu giới hạn công thức cho các xác thực loại phạm vi và phối hợp khu vực tế bào không có hiệu lực.

Thường xuyên hỏi câu hỏi

Các loại xác thực nào được hỗ trợ?

Các ValidationType Danh sách bao gồm: WholeNumber, Decimal, List, Date, TextLength, Custom, và Any.

Tôi có thể loại bỏ một quy tắc xác thực từ phạm vi không?

Có. sử dụng ValidationCollection::RemoveArea(area) để loại bỏ quy tắc từ một phạm vi, hoặc RemoveACell(row, col) cho một tế bào duy nhất.

Tôi có thể áp dụng cùng một quy tắc xác thực cho nhiều ranh giới không?

Có. gọi Validation::AddArea(area) nhiều lần trong cùng một Validation - Mục đích áp dụng cho các ranh giới bổ sung.

Những kiểu cảnh báo nào có sẵn?

ValidationAlertType bao gồm: Stop (được cấm vào không hợp lệ), Warning (được cảnh báo nhưng cho phép nhập), và Information (Chỉ có công cụ thông tin).

Có thực hiện việc xác nhận trong thời gian làm việc hay chỉ có Excel?

Các quy tắc xác thực dữ liệu được lưu trữ trong tệp XLSX và áp dụng bởi Excel hoặc một người đọc tương thích. Thư viện không đánh giá các hạn chế xác nhận tại thời gian chạy khi các giá trị được thiết lập theo chương trình.

See Also

 Tiếng Việt