วิธีการเพิ่ม การยืนยันข้อมูลในตารางกระดาษ ใน 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 คลาสประกอบ API การยืนยัน.

คู่มือขั้นตอนตามขั้นตอนนี้

ขั้น ตอน ที่ 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: เพิ่มกฎการยืนยันความถูกต้อง

Call 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: ใช้กฎในระยะ

ติดการยืนยันกับ a CellArea การใช้ Validation::AddArea:

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

ขั้นตอนที่ 6: บันทึกเวิร์กบุ๊ก

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

ขั้นตอน 7: ใช้การตรวจสอบก่อนบันทึก (เลือก)

Call WorkbookValidator::ValidateForSave ในระหว่างการพัฒนา เพื่อจับปัญหาของแบบก่อนที่จะเก็บไว้:

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

ปัญหาทั่วไปและข้อกําหนด

การยืนยันไม่เห็นในไฟล์ที่บันทึกไว้ Ensure Validation::AddArea(area) จะถูกเรียกหลังจากการตั้งค่ากฎ. กฎที่ไม่มีพื้นที่เกี่ยวข้องไม่ได้เป็นเรียงลําดับ.

รายการหลุดลงไม่แสดง เซ็ต v.SetInCellDropDown(true) และตั้ง v.SetType(ValidationType::List) มี SetFormula1 ที่ชี้วัดไปยังระยะหรือค่าที่แยกด้วยคอมม่า.

พื้นที่การตรวจสอบความถูกต้องซ้อนกัน การใช้งาน ValidationCollection::AreasOverlap เพื่อตรวจสอบความขัดแย้งก่อนการเพิ่มกฎใหม่. กฎที่ซ้อนกันอาจทําให้ Excel มีพฤติกรรมไม่คาดหวัง.

ข้อความการเข้าไม่ปรากฏ การันตีทั้งคู่ SetShowInput(true) และ SetInputMessage("...") are set. สายข้อความเปล่าจะลบการส่งข้อมูลในตัว แม้ว่า 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 หรือ Reader ที่ตรงกันได้. ห้องสมุดไม่ประเมินข้อจํากัดในการตรวจหาความ ถูกต้อง ในเวลาทํางาน เมื่อวัคติถูกกําหนดโดยโปรแกรม.

See Also

 ภาษาไทย