Verify that Cell Value Satisfies Data Validation Rules
Microsoft Excel allows users to add data validation rules to cells. For example, a decimal validation specifies that only numbers between 10 and 20 can be entered. If a user enters a different number. Microsoft Excel shows an error message and prompts them to enter a number in the correct range. If you copy and paste a number, say 3, into the cell, Excel does not run a validation check or show an error message.
Sometimes, it is necessary to verify whether a value satisfies the data validation rules applied to the cell programmatically. In the case above, for example, the entry should fail.
Introduction
Aspose.Cells provides the Cell.GetValidationValue() method to validate cell values programmatically. If the value in a cell does not satisfy the data validation rule applied to that cell, it returns False, else True.
The following sample code illustrates how the Cell.GetValidationValue() method works. First, it enters the value 3 into C1. Because this does not satisfy the data validation rule, the Cell.GetValidationValue() method returns False. Then, it enters the value 15 into C1. Because this value satisfies the data validation rule, the Cell.GetValidationValue() method returns True. Similarly, it returns False for value 30.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Instantiate the workbook from sample Excel file | |
Workbook workbook = new Workbook(dataDir+ "sample.xlsx"); | |
// Access the first worksheet | |
Worksheet worksheet = workbook.Worksheets[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.Cells["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 | |
Console.WriteLine("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 | |
Console.WriteLine("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 | |
Console.WriteLine("Is 30 a Valid Value for this Cell: " + cell.GetValidationValue()); |
Output
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