WPS表格加载项续写内容二
书接上回:wps表格加载项续写内容一
main.js文件内容继续
function on_Workbook_SheetChange(Sh,rg){
locate_end_cell(Sh,rg);
setinteriorcolor(Target);
}
function locate_end_cell(Sh,rg){
if(wps.PluginStorage.getItem("end_cell_address")){
let str = String(rg.Address());
Application.ActiveSheet.Range(str.substring(str.indexOf(":")+1)).Select();
}
}
function on_Workbook_SheetSelectionChange(Sh, Target) {
protect_lastcell_formula(Sh, Target);
setinteriorcolor(Target);
}
function protect_lastcell_formula(Sh, Target) {
//console.log(Sh.Name);
//console.log(Target.Rows.Count);
//当前活动工作表选区改变触发事件,对上一个单元格的值是否包含公式进行判断
let isprotect = wps.PluginStorage.getItem("protect_cell_formula")
console.log("isprotect:" + isprotect)
if (isprotect) {
let last_cell_address = wps.PluginStorage.getItem("last_cell_address");
let last_cell_formula = wps.PluginStorage.getItem("last_cell_formula");
if (last_cell_address != "" && last_cell_formula != "nothing") {
if (wps.ActiveSheet.Range(last_cell_address).Formula != last_cell_formula) {
wps.ActiveSheet.Range(last_cell_address).Formula = last_cell_formula
}
}
//当前活动工作表选区改变触发事件,对当前单元格的值是否包含公式进行判断
if (Target.Rows.Count == 1 && Target.Columns.Count == 1) {
if (Target.Formula.indexOf("=") + 1) {
wps.PluginStorage.setItem("last_cell_formula", Target.Formula);
//console.log("单元格含有公式,存储原值");
} else {
wps.PluginStorage.setItem("last_cell_formula", "nothing");
//console.log("单元格不含有公式,可编辑");
}
wps.PluginStorage.setItem("last_cell_address", Target.Address());
}
} else {
wps.PluginStorage.setItem("last_cell_formula", "nothing");
wps.PluginStorage.setItem("last_cell_address", "");
}
}
function get_button_label(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":
let tsId = wps.PluginStorage.getItem("taskpaneID");
if (!tsId) {
return "打开任务窗格";
} else {
return "关闭任务窗格";
}
break;
case "bt_addsumformula":
return "添加求和公式";
break;
default: ;
}
return true;
};
function checkbox_onAction(isChecked, 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 isChecked == "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":
console.log(eleId + " ,isChecked:" + isChecked)
if (isChecked) {
wps.PluginStorage.setItem("protect_cell_formula", true);
//return true;
} else {
wps.PluginStorage.setItem("protect_cell_formula", false)
//return true;
}
break;
case "cBox_locate_cell":
if (isChecked) {
wps.PluginStorage.setItem("end_cell_address", true);
} else {
wps.PluginStorage.setItem("end_cell_address", false);
}
break;
case "cBox_AutoSave":
if (isChecked) {
wps.PluginStorage.setItem("IsAutoSave", true);
} else {
wps.PluginStorage.setItem("IsAutoSave", false);
}
break;
case "cBox_rowinterior":
if (isChecked) {
wps.PluginStorage.setItem("cBox_rowinterior", true);
} else {
wps.PluginStorage.setItem("cBox_rowinterior", false);
}
break;
case "cBox_columninterior":
if (isChecked) {
wps.PluginStorage.setItem("cBox_columninterior", true);
} else {
wps.PluginStorage.setItem("cBox_columninterior", false);
}
break;
default: ;
}
//wps.ribbonUI.Invalidate(); //刷新Ribbon的状态
return true;
}