Trabajar con la validación de datos

Trabajar con la validación de datos

Trabajar con la validación de datos

Aspose.Cells FOSS for C++ supports adding cell-level data validation rules to worksheets via the Validation y ValidationCollection Las clases, el WorkbookValidator La clase proporciona un control de consistencia pre-salvo.


Adjuntar una regla de validación

Acceda a la colección de validación para una hoja de trabajo y añade una nueva regla utilizando ValidationCollection::Add().Configure el tipo, fórmula y área de destino en la parte devuelta. Validation Objetos :

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

Tipos de validación

El ValidationType La enumeración define los tipos de restricciones que se pueden aplicar:

ValidationTypeDescripción
WholeNumberCondiciones de valor integral
DecimalPunto de flotación con restricción
ListLista de descenso de una fórmula o rango
DateEl valor de la fecha es limitado
TextLengthExtenso comprensión restringida
CustomReglas de uso basadas en fórmulas

Estilo de alerta

El ValidationAlertType La enumeración controla el comportamiento mostrado cuando la validación fracaso:

AlertStylecomportamiento
StopBloco entrada y muestra un diálogo de error
WarningMostrar una advertencia; el usuario puede aceptar o rechazar
InformationMostrar una herramienta informativa

Configura el estilo de alerta con Validation::SetAlertStyle(ValidationAlertType).


La validación en una célula

Uso ValidationCollection::GetValidationInCell(row, col) para determinar qué regla de validación se aplica a una célula específica. nullptr Si no se aplica ninguna regla.


Eliminar las reglas de validación

Remover una validación de una célula o área específica:

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

Validación del libro de trabajo Pre-Save

llamadas WorkbookValidator::ValidateForSave para realizar un control de coherencia en el modelo del libro antes de ahorrar. esto se llama automáticamente por Workbook::Save Pero se puede invocar de forma independiente durante el desarrollo:

WorkbookValidator validator;
validator.ValidateForSave(workbook);

Consejos y mejores prácticas

  • Siempre establece ambos SetFormula1 y SetFormula2 Para la validación de los tipos de gama (WholeNumber, Decimal, Date- Definición de los límites inferiores y superiores.
  • Uso SetIgnoreBlank(true) Permite que las células vacías pasen la validación sin provocar un error.
  • llamadas ValidationCollection::AreasOverlap antes de agregar una nueva regla para comprobar si las zonas de validación sobre la misma hoja están superlapping.
  • WorkbookValidator::ValidateForSave Se llama internamente a la salvación; invoca durante el desarrollo para capturar problemas tempranos.

Problemas comunes

ProblemasCausasFixado
Validación no aplicada a la célulaZona no añadidallamadas Validation::AddArea(area) Con el alcance de los objetivos
Descargar no mostrarSetInCellDropDown(false)Sitio SetInCellDropDown(true) Para la validación de listas
Reglas sobrecogidasDos reglas cubren las mismas célulasUso AreasOverlap Detectar y resolver conflictos
Validación de fallosModelos de inconsistenciaRevisa y corregirá la inconsistencia reportada antes de ahorrar

Sumación de referencia API

Clase / MétodoDescripción
ValidationCollection::Add()Añade una nueva regla de validación vacía
ValidationCollection::GetValidationInCell(row, col)Encuentra la validación de una célula
ValidationCollection::RemoveArea(area)Eliminar la validación de una gama
ValidationCollection::RemoveACell(row, col)Eliminar la validación de una célula
ValidationCollection::AreasOverlapVerificar las áreas de validación sobrecongeladas
Validation::SetType(ValidationType)Definición del tipo de validación
Validation::SetFormula1(expr)Configura el límite inferior o la fuente de lista
Validation::SetFormula2(expr)Sitio de arriba ligado
Validation::AddArea(area)Aplique la regla a una rama
Validation::RemoveArea(area)Eliminar la regla de una rama
Validation::SetAlertStyle(style)Comportamiento de detección/aviso/información
WorkbookValidator::ValidateForSavePre-Save Consistencia de control

Ver también

 Español