重置个别单元格DataValidator后sheet的所有DataValidator都失效了。
伪代码流程如下:
// 初始化validator
// 数字大小在0-10
const numValidator = DataValidation.createNumberValidator(between, 0, 10, false)
// 非空字符串
const strValidator = DataValidation.createTextLengthValidator(greaterThan, 0)
// 设置多个表头及列绑定字段
for () {
sheet.addSpan()
sheet.setValue()
sheet.bindColumn()
}
// 所有行、第一、第二列设置validator
sheet.setDataValidator(-1, 0, -1, 1, strValidator)
sheet.setDataValidator(-1, 0, -1, 1, numValidator)
// 发起http请求,获取数据
async function getData() {
const list = await dataService.getData()
sheet.setDataSource(list)
for (index) {
item = list[index]
// 某条数据的某个字段为某个值时,不校验此行数据,清空第一、第二列validator
if (!item.shouldValidate) {
sheet.setDataValidator(index, 0, -1, 1, null)
sheet.setDataValidator(index, 0, -1, 1, null)
}
if (item.xx) {
sheet.getCell(index, 1).backColor('red')
}
}
}
如上,初始化时给表格所有行设置了validator,获取到数据后,需要移除验证器,移除后,所有行所有列验证器都失效了。
|
|