wps表格加载项续写内容一
书接上回:wps加载项简单实现过程
publish.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<jsplugins>
<jsplugin name="WPS_EXT_ADDINS" enable="enable_dev" url="file://" type="et" version="0.01" debug=""/>
</jsplugins>
ribbon.xml内容如下
<customUI onLoad="OnWPSWorkTabLoad">
<ribbon startFromScratch="false">
<tabs>
<tab id ="tab1" label = "WPS_EXT_ADDINS" getVisible="getVisibleMacro">
<group id = "set_interior" label="高亮行列">
<checkBox id = "cBox_rowinterior" onAction="checkbox_onAction" label="高亮行" getPressed="GetPressed" supertip="高亮行 " />
<checkBox id = "cBox_columninterior" onAction="checkbox_onAction" label="高亮列" getPressed="GetPressed" supertip="高亮列" />
</group>
<group id = "group_taskpane" label="任务窗格">
<!-- supertip 鼠标指向控件时,显示的文本信息 showLabel = "false" -->
<button id = "bt_taskpane" onAction = "button_onAction" getLabel="get_button_label" getEnabled="getVisibleMacro" imageMso="T" supertip="显示或关闭任务窗格" />
<button id = "bt_addsumformula" onAction = "button_onAction" getLabel="get_button_label" getEnabled="getVisibleMacro" imageMso="AutoSum" supertip="添加公式以计算假合并单元格值的和" />
</group>
<group id="g3">
<!-- <separator id="S1" /> -->
</group>
<group id = "group_calculate" label="计算公式">
<!-- checkBox 自定义时不能指定图标 -->
<checkBox id = "cBox_protectformula" onAction="checkbox_onAction" label="保护公式" getPressed="GetPressed" supertip="是否允许编辑活动单元格公式" />
<checkBox id = "cBox_locate_cell" onAction="checkbox_onAction" label="定位尾格" getPressed="GetPressed" supertip="粘贴或批量修改单元格值后,定位首格或尾格为活动单元格" />
</group>
<group id = "group_function" label="常用功能">
<checkBox id = "cBox_AutoSave" onAction="checkbox_onAction" label="自动保存" getPressed="GetPressed" supertip="执行定时保存功能,默认10秒。可修改 remainingtime 初始值 " />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
main.js内容如下:
function OnWPSWorkTabLoad(ribbonUI) {
//alert("TAB 初始化入口函数")
wps.ribbonUI = ribbonUI;
OnJSWorkInit(); //初始化文档事件(全局参数,挂载监听事件)
activeTab();
AutoSave();
return true;
}
function OnJSWorkInit() {
pInitParameters(); //所有配置控制的初始化过程
AddWorkbookEvent(); //挂接文档事件处理函数
}
function pInitParameters() {
wps.PluginStorage.setItem("taskpaneID", 0);
wps.PluginStorage.setItem("end_cell_address", false);
wps.PluginStorage.setItem("protect_cell_formula", false);
wps.PluginStorage.setItem("last_cell_address", "");
wps.PluginStorage.setItem("last_cell_formula", "nothing");
wps.PluginStorage.setItem("remainingtime", 30);
wps.PluginStorage.setItem("IsAutoSave", true);
wps.PluginStorage.setItem("timer", 0);
wps.PluginStorage.setItem("interiorcolor", {r:189,g:255,b:189});
wps.PluginStorage.setItem("cBox_rowinterior", true);
wps.PluginStorage.setItem("cBox_columninterior", true);
}
//挂载WPS的表格事件
function AddWorkbookEvent() {
wps.ApiEvent.AddApiEventListener("SheetSelectionChange", on_Workbook_SheetSelectionChange);
wps.ApiEvent.AddApiEventListener("SheetChange", on_Workbook_SheetChange);
}
function activeTab() {
wps.ribbonUI.ActivateTab('WPS_EXT_ADDINS');
}
function taskpane() {
//console.log("启动任务窗格。")
//控制任务窗格显示/隐藏 --使用缓存
let tsId = wps.PluginStorage.getItem("taskpaneID");
if (!tsId) {
let tskpane = wps.CreateTaskPane(Application.Env.GetAppDataPath() + "/kingsoft/wps/jsaddons/WPS_EXT_ADDINS_0.01/index_TaskPane.html", "");
//let tskpane = wps.CreateTaskPane(Util.GetUrlPath() + "task")
let id = tskpane.ID;
wps.PluginStorage.setItem("taskpaneID", id)
tskpane.Visible = true;
tskpane.Width = 600;
tskpane.DockPosition = wps.Enum.JSKsoEnum_msoCTPDockPositionLeft;
} else {
let tskpane = wps.GetTaskPane(tsId);
//tskpane.Visible = !tskpane.Visible
tskpane.Delete();
wps.PluginStorage.setItem("taskpaneID", 0);
}
return true;
}