Проверка того, что значение ячейки удовлетворяет правилам валидации данных
Microsoft Excel позволяет пользователям добавлять правила проверки данных к ячейкам. Например, правило дескриминативной проверки определяет, что могут вводиться только числа между 10 и 20. Если пользователь вводит другое число, Excel показывает сообщение об ошибке и предлагает ввести число в правильном диапазоне. Если вы копируете и вставляете число, например 3, в ячейку, проверка не запускается и сообщение об ошибке не показывается.
Иногда необходимо программно проверить, удовлетворяет ли значение правилам валидации данных, примененным к ячейке. В приведенном выше случае, например, ввод должен завершиться неудачей.
Введение
Aspose.Cells for Node.js via C++ предоставляет метод Cell.getValidationValue() для программной проверки значений ячеек. Если значение в ячейке не удовлетворяет правилу проверки данных, он возвращает false, иначе true.
Следующий пример демонстрирует работу метода Cell.getValidationValue(). Сначала в C1 вводится значение 3. Поскольку оно не соответствует правилу проверки, метод возвращает false. Затем в C1 вводится значение 15. Поскольку это значение соответствует правилу проверки, метод возвращает true. Аналогично, для значения 30 возвращается false.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Instantiate the workbook from sample Excel file | |
const workbook = new AsposeCells.Workbook(dataDir + "sample.xlsx"); | |
// Access the first worksheet | |
const 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 | |
const 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 | |
console.log("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.log("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.log("Is 30 a Valid Value for this Cell: " + cell.getValidationValue()); |
Вывод
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