验证单元格值是否满足数据验证规则
Microsoft Excel允许用户为单元格添加数据验证规则。例如,小数验证指定只能输入10到20之间的数字。如果用户输入不同的数字,Excel会显示错误信息并提示他们输入正确范围内的数字。如果复制粘贴一个数字,比如3,Excel不会进行验证检查或显示错误信息。
有时,有必要以编程方式验证一个值是否满足应用于该单元格的数据验证规则。例如,上面的情况下,输入应该是失败的。
介绍
Aspose.Cells for Node.js via C++ 提供了 Cell.getValidationValue() 方法来以编程方式验证单元格值。如果单元格中的值不满足该单元格应用的数据验证规则,则返回 false,否则返回 true。
以下示例代码演示了 Cell.getValidationValue() 方法的工作原理。首先,在 C1 输入值 3。因为这不满足数据验证规则,所以 Cell.getValidationValue() 方法返回 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