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;
}