Como adicionar validação de dados a uma planilha em C++

Como adicionar validação de dados a uma planilha em 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, e WorkbookValidator As classes constituem a API de validação.

Guia passo a passo

Passo 1: Prepare a construção

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)

Passo 2: Incluir cabeçalhos exigidos

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

Passo 3: Acesse a coleção de validações

Recuperar o ValidationCollection na folha de cálculo:

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

Passo 4: Adicionar uma regra de validação

Chama-me . ValidationCollection::Add() e configurar o retorno Validation Objeto:

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

Passo 5: Aplicar a regra para um intervalo

Anexar a validação a um CellArea Utilização de: Validation::AddArea:

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

Passo 6: Salve o livro de trabalho

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

Etapa 7: Execute a validação de pré-salvo (opcional)

Chama-me . WorkbookValidator::ValidateForSave durante o desenvolvimento para detectar problemas no modelo antes de guardar:

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

Problemas comuns e soluções

Validação não visível no ficheiro guardado Assegurar a Validation::AddArea(area) Uma regra sem área associada não é serializada.

Lista suspensa não está a aparecer. Set (s) v.SetInCellDropDown(true) e definido v.SetType(ValidationType::List) com: SetFormula1 Indicando um intervalo ou valores separados por vírgulas.

Áreas de validação sobrepostas Utilização: ValidationCollection::AreasOverlap Para verificar conflitos antes de adicionar uma nova regra. Regras sobrepostas podem produzir comportamento inesperado no Excel.

Mensagem de entrada não aparece Assegurar que ambos os SetShowInput(true) e a) SetInputMessage("...") uma cadeia de mensagens vazia suprime a solicitação de entrada mesmo se SetShowInput(true) é chamado.

ValidateForSave relatórios de erros Revisar a inconsistência relatada. Causas comuns incluem limites de fórmula faltantes para validações do tipo de intervalo e coordenadas da área da célula inválidas.

Perguntas Frequentes

Que tipos de validação são suportados?

A Comissão ValidationType A enumeração inclui: WholeNumber, Decimal, List, Date, TextLength, Custom, e Any.

Posso remover uma regra de validação a partir de um intervalo?

Sim, usa. ValidationCollection::RemoveArea(area) Remover a regra de uma faixa, ou RemoveACell(row, col) para uma única célula.

Posso aplicar a mesma regra de validação para vários intervalos?

Sim, liga. Validation::AddArea(area) várias vezes no mesmo Validation Objeção à sua aplicação a intervalos adicionais.

Que tipos de alerta estão disponíveis?

ValidationAlertType Inclui: Stop (bloqueia entrada inválida), Warning (avisa, mas permite a entrada) e Information (apenas para informações).

A validação funciona no tempo de execução, ou apenas no Excel?

As regras de validação dos dados são armazenadas no arquivo XLSX e aplicadas pelo Excel ou por um leitor compatível. A biblioteca não avalia as restrições de confirmação na execução quando os valores são definidos programaticamente.

Ver também:

 Português