Verificar que el valor de la celda cumple con las reglas de validación de datos

Verificar que el valor de la celda cumple con las reglas de validación de datos

A veces es necesario verificar de forma dinámica si un valor dado cumple con las reglas de validación de datos aplicadas a la celda. Con este propósito, las API de Aspose.Cells proporcionan el método cell.getValidationValue(). Si el valor en una celda no cumple con la regla de validación de datos aplicada a esa celda, devuelve Falso, de lo contrario Verdadero.

El siguiente archivo de ejemplo de Microsoft Excel se utiliza con el código de ejemplo a continuación para probar el método cell.getValidationValue(). Como se puede ver en la captura de pantalla, las celdas C1 tienen validación de datos decimales aplicada y solo aceptarán valores entre 10 y 20. Cada vez que el valor de la celda esté entre 10 y 20, el método cell.getValidationValue() devolverá Verdadero, de lo contrario, devolverá Falso.

todo:image_alt_text

El siguiente código de ejemplo ilustra cómo funciona el método cell.getValidationValue(). Primero, ingresa el valor 3 en C1. Debido a que esto no cumple con la regla de validación de datos, el método cell.getValidationValue() devuelve Falso. Luego, ingresa el valor 15 en C1. Dado que este valor cumple con la regla de validación de datos, el método cell.getValidationValue() devuelve Verdadero. De manera similar, devuelve Falso para el valor 30.

Código Java para verificar si el valor de una celda cumple con las reglas de validación de datos

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(VerifyCellValueSatisfiesDataValidationRules.class);
// Instantiate the workbook from sample Excel file
Workbook workbook = new Workbook(dataDir + "Sample1.xlsx");
// Access the first worksheet
Worksheet worksheet = workbook.getWorksheets().get(0);
/*
* Access Cell C1. Cell C1 has the Decimal Validation applied on it.It can take only the values Between 10 and 20
*/
Cell cell = worksheet.getCells().get("C1");
// Enter 3 inside this cell. Since it is not between 10 and 20, it should fail the validation
cell.putValue(3);
// Check if number 3 satisfies the Data Validation rule applied on this cell
System.out.println("Is 3 a Valid Value for this Cell: " + cell.getValidationValue());
// Enter 15 inside this cell. Since it is between 10 and 20, it should succeed the validation
cell.putValue(15);
// Check if number 15 satisfies the Data Validation rule applied on this cell
System.out.println("Is 15 a Valid Value for this Cell: " + cell.getValidationValue());
// Enter 30 inside this cell. Since it is not between 10 and 20, it should fail the validation again
cell.putValue(30);
// Check if number 30 satisfies the Data Validation rule applied on this cell
System.out.println("Is 30 a Valid Value for this Cell: " + cell.getValidationValue());

Salida de consola generada por el código de ejemplo

Aquí está la salida de la consola generada cuando se ejecuta el código de ejemplo con el archivo de Excel de ejemplo mostrado anteriormente.

Is 3 a Valid Value for this Cell: False

Is 15 a Valid Value for this Cell: True

Is 30 a Valid Value for this Cell: False