Cum să adăugați validarea datelor la o foaie de calcul în C ++

Cum să adăugați validarea datelor la o foaie de calcul în 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, și WorkbookValidator clasele constituie API de validare.

Ghid pas cu pas

Pasul 1: Construirea

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)

Pasul 2: Includeţi titlurile necesare

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

Pasul 3: Acces la colectia de validare

Obţineţi… ValidationCollection din fișierul de lucru:

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

Pasul 4: Adăugați o regulă de validare

Sună-mă. ValidationCollection::Add() şi configuraţi returnarea Validation Obiectul:

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

Pasul 5: Aplicați regula la o gamă de date

Atașează validarea la o CellArea utilizarea Validation::AddArea:

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

Pasul 6: Salvează Workbook-ul

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

Pasul 7: rulați Validarea pre-Salvare (opțională)

Sună-mă. WorkbookValidator::ValidateForSave în timpul dezvoltării pentru a detecta problemele de model înainte de salvare:

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

Probleme comune şi soluţii

Validarea nu este vizibilă în fișierul salvat Asigurarea Validation::AddArea(area) O regulă fără zonă asociată nu este serializată.

Lista de descărcare nu apare Setare v.SetInCellDropDown(true) și setat v.SetType(ValidationType::List) cu: SetFormula1 indicând o gamă sau valori separate prin virgulă.

Suprapuse zone de validare Utilizare: ValidationCollection::AreasOverlap să verifici dacă există conflicte înainte de a adăuga o nouă regulă. Suprapusează regulile pot produce un comportament neașteptat în Excel.

Mesajul de intrare nu apare. Asigură-te că ambele SetShowInput(true) și de: SetInputMessage("...") sunt setate. Un șir de mesaje gol suprimă promptul de intrare chiar dacă SetShowInput(true) se numeşte.

ValidateForSave Raportarea erorilor Revizuieți inconsistența raportată. Cauzele comune includ limitele formulate lipsă pentru validările de tip interval și coordonatele nevalorate ale zonei celulei.

Întrebări frecvente

Ce tipuri de validare sunt acceptate?

În ceea ce priveşte ValidationType enumerarea include: WholeNumber, Decimal, List, Date, TextLength, Custom, și Any.

Pot să îndepărtez o regulă de validare dintr-o gamă?

Da, foloseşte-l. ValidationCollection::RemoveArea(area) pentru a elimina regula dintr-o gamă, sau RemoveACell(row, col) pentru o singură celulă.

Pot aplica aceeași regulă de validare la mai multe intervale?

Da, sună-mă. Validation::AddArea(area) de mai multe ori pe aceeaşi Validation obiecție de a o aplica la intervale suplimentare.

Ce tipuri de alertă sunt disponibile?

ValidationAlertType include: Stop (blochează intrarea nevalidă), Warning (avertează, dar permite intrarea), și Information (doar un sfat informativ).

Validarea funcționează la runtime sau numai în Excel?

Regulile de validare a datelor sunt stocate în fișierul XLSX și aplicate prin Excel sau un cititor compatibil. Biblioteca nu evaluează constrângerile de valificare la runtime atunci când valorile sunt setate programatic.

Vezi și:

 Română