- //检查单元格值
- function checkCellValue(){
- sheet.bind(GC.Spread.Sheets.Events.LeaveCell, function (sender, args) {
- var validateerror=false;
- //在这里进对数据进行校验
- console.log("----------------checkCellValue is trigger");
- var sheetTemp = spreadAll.getActiveSheet();
- var rowIndex = sheetTemp.getActiveRowIndex();
- var columnIndex = sheetTemp.getActiveColumnIndex();
- //sheetTemp.setActiveCell(trStr, targetIndex);
- var cellValue = sheetTemp.getValue(rowIndex, columnIndex);
- console.log("----------------cellValue is " + cellValue);
- if(!checkIsLegalNumber(cellValue)){
- sheetTemp.setActiveCell(rowIndex, columnIndex);
- sheetTemp.startEdit(true);
- }
- if(validateerror){
- args.cancel=true;
- sheet.startEdit(true);
- }
- });
- }
复制代码
这样也不调用啊 还有 写了一个 列的校验 也是没有效果出来 多个 sheet 的
- // 初始化表单
- function initSpread(spread) {
- spread.suspendPaint();
- const sheet = spread.getActiveSheet();
- // sheet.reset();
- // 以下是添加数据校验的代码部分:
- // 先设置高亮显示
- spread.options.highlightInvalidData = true;
- // 创建校验条件,自定义
- var cCondition = new CustomerCondition();
- var validator1 = new GC.Spread.Sheets.DataValidation.DefaultDataValidator(cCondition);
- validator1.ignoreBlank(false);
- validator1.type(GC.Spread.Sheets.DataValidation.CriteriaType.custom);
- sheet.setDataValidator(-1,5, validator1);
- spread.resumePaint();
- }
- // 用户自定义数据校验条件
- function CustomerCondition(){
- var self = this;
- // 当前自定义条件名称
- self.conditionType = "CustomerCondition";
- }
- CustomerCondition.prototype = new GC.Spread.Sheets.ConditionalFormatting.Condition();
- CustomerCondition.prototype.evaluate = function(evaluator, baseRow, baseColumn, actualValue){
- // 在此设置判断条件,非数判断
- if(isNaN(parseFloat(actualValue))){
- return false;
- }else{
- return true;
- }
- }
复制代码
单独运行就可以校验 放到工程里 多个 sheet 中 就没有效果了 也不进行校验 |