WPS表格加载项续写内容三

书接上回:WPS表格加载项续写内容二

main.js内容继续

function button_onAction(control) {

    var eleId;
    if (typeof control == "object" && arguments.length == 1) { //针对Ribbon的按钮的
        eleId = control.Id;
    } else if (typeof control == "undefined" && arguments.length > 1) { //针对idMso的
        eleId = arguments[1].Id;
    } else if (typeof control == "boolean" && arguments.length > 1) { //针对checkbox的
        eleId = arguments[1].Id;
    } else if (typeof control == "number" && arguments.length > 1) { //针对combox的
        eleId = arguments[2].Id;
    }
    switch (eleId) {
    case "bt_taskpane":
        taskpane();
        wps.ribbonUI.Invalidate(); //刷新Ribbon的状态
        break;
    case "bt_addsumformula":
        Add_Sum_Formula();
        break;    
    default: return true;
        
    }
    return true;   //此处必须有一个return true; 要不会报错。
}

function GetPressed(control) {

    //console.log(control.Context.Caption);
    //console.log(control.Id);
    var eleId;
    if (typeof control == "object" && arguments.length == 1) { //针对Ribbon的按钮的
        eleId = control.Id;
    } else if (typeof control == "undefined" && arguments.length > 1) { //针对idMso的
        eleId = arguments[1].Id;
    } else if (typeof control == "boolean" && arguments.length > 1) { //针对checkbox的
        eleId = arguments[1].Id;
    } else if (typeof control == "number" && arguments.length > 1) { //针对combox的
        eleId = arguments[2].Id;
    }
    switch (eleId) {
    case "cBox_protectformula":
        if (wps.PluginStorage.getItem("protect_cell_formula")) {
            return true;
        } else {
            return false;
        }
        break;
    case "cBox_locate_cell":
        if (wps.PluginStorage.getItem("end_cell_address")) {
        return true;
        } else {
        return false;
        }
        break;
    case "cBox_AutoSave":
        if (wps.PluginStorage.getItem("IsAutoSave")) {
        return true;
        } else {
        return false;
        }        
        break;
    case "cBox_columninterior":
        if (wps.PluginStorage.getItem("cBox_columninterior")) {
        return true;
        } else {
        return false;
        }
        break;        
    case "cBox_rowinterior":
        if (wps.PluginStorage.getItem("cBox_rowinterior")) {
        return true;
        } else {
        return false;
        }
        break;    
        
    default: ;
        
    }
    return true;
}

function getVisibleMacro() {
    return true;
}

function Add_Sum_Formula() {
    let SumFormulaString = `function return_calculate_value(nRow,nColumn){
            let row = Application.ActiveSheet.Cells.Item(nRow,nColumn).MergeArea.Item(1).Row;
            let column = Application.ActiveSheet.Cells.Item(nRow,nColumn).MergeArea.Item(1).Column;    
            let value2 = Application.ActiveSheet.Cells.Item(nRow,nColumn).Value2;    
                if(row == nRow && column == nColumn){
                    return value2 == undefined ? 0 : value2
                    }else{
                    return 0;
                    }    
                }`;
    let sumFormulaString = `function SUMIFM(nStartRow,nStartColumn,nEndRow,nEndColumn){
    // 包含假合并单元格区域:nStartRow =开始行,nStartColumn =开始列,nEndRow =结束行,nEndColumn =结束列
    let sum = 0;
    
    for(var nrow=nStartRow;nrow<=nEndRow;nrow++){
        
        for(var ncolumn = nStartColumn;ncolumn<= nEndColumn;ncolumn++){
            
            sum = sum + return_calculate_value(nrow,ncolumn);
            
        }
        
    }
    console.log(sum);
    return sum;
}`;
    if (!Application.JSIDE.SelectedJSComponent.CodeModule.FuncBodyLine("SUMIFM")) {
        wps.Application.JSIDE.SelectedJSComponent.CodeModule.AddFromString(SumFormulaString);
        wps.Application.JSIDE.SelectedJSComponent.CodeModule.AddFromString(sumFormulaString); //大小写 sum Sum
        //console.log(SumFormulaString);

    }
    alert("已经添加求和公式:SUMIFM(参数1,参数2,参数3,参数4) \n \n 参数1:开始行; 参数2:开始列;\n 参数3:结束行; 参数4:结束列;");
    return true;
}

function return_calculate_value(nRow,nColumn){
    let row = Application.ActiveSheet.Cells.Item(nRow,nColumn).MergeArea.Item(1).Row;
    let column = Application.ActiveSheet.Cells.Item(nRow,nColumn).MergeArea.Item(1).Column;    
    let value2 = Application.ActiveSheet.Cells.Item(nRow,nColumn).Value2;    
    if(row == nRow && column == nColumn){
        return value2 == undefined ? 0 : value2
    }else{
        return 0;
    }    
}

function SUMIFM(nStartRow,nStartColumn,nEndRow,nEndColumn){
    // 包含假合并单元格区域:nStartRow =开始行,nStartColumn =开始列,nEndRow =结束行,nEndColumn =结束列
    let sum = 0;
    
    for(var nrow=nStartRow;nrow<=nEndRow;nrow++){
        
        for(var ncolumn = nStartColumn;ncolumn<= nEndColumn;ncolumn++){
            
            sum = sum + return_calculate_value(nrow,ncolumn);
            
        }
        
    }
    console.log("sum: " + sum);
    return sum;
}
黑龙江省
浏览 35
收藏
点赞
分享
+1
+1
全部评论