乐于分享
好东西不私藏

WPS加载项(三)–拓展用:超强功能辅助

WPS加载项(三)–拓展用:超强功能辅助

    原本计划三篇结束简要加载项入门笔记的,但是发现不记录介绍下这个不行。我们知道,wps往加载项中塞了个浏览器,所以他可以做的不仅仅是一个文字处理工具或是一个表格处理软件,他还可以做很多浏览器可以做的事,虽然比较简单,但是他也可以做很多纯浏览器做不到的事。
    如果说单纯的把宏改成加载项,只是方便了一些常用功能的快速使用,那么塞了个网页进去,可以做的东西就更多了。现在开始介绍下他的taskpane,简单的理解,就是一个html网页,我们可以用网页实现一些想要的功能,然后创建一个taskpane窗口,就相当于用wps打开了这个网页。具体如何实现这个网页现在很多AI都支持一键生成了,只要你有想法很容易实现,当然,功能不能太复杂,主要还是考虑用于辅助增强作用,减少重复劳动。
    如前文所说,加一个按钮,控制一段代码,用来创建taskpan
一、ribbon加入
<button id="btnShowTaskPane" label="表格列表" onAction="taskpane"  getImage="GetImage" size="large"  keytip = "B"/>
二、js文件加入
function taskpane() {    let tsId = window.Application.PluginStorage.getItem("taskpane_id")    if (!tsId) {        let tskpane = window.Application.CreateTaskPane(GetUrlPath() + "/ui/sheetlist.html","文件列表")        let id = tskpane.ID        window.Application.PluginStorage.setItem("taskpane_id", id)        tskpane.Visible = true        tskpane.DockPosition = wps.Enum.JSKsoEnum_msoCTPDockPositionLeft;    } else {        let tskpane = window.Application.GetTaskPane(tsId)        tskpane.Visible = !tskpane.Visible    }    return true}
function GetUrlPath() {    let e = document.location.toString()    return -1!=(e=decodeURI(e)).indexOf("/")&&(e=e.substring(0,e.lastIndexOf("/"))),e}
官方的taskpane代码稍微修改下,这里根据需要只修改
GetUrlPath() + “/ui/sheetlist.html”,“文件列表”
即可,表示一个叫做sheetlist.html的网页的路径,这里是放在插件目录下ui文件夹下,标题是“文件列表”,GetUrlPath()也是官方示例里的获取当前插件目录的函数,没有可以一起加上去。
这样就实现以面板的形式打开了一个网页,如下所示:
tskpane.DockPosition = wps.Enum.JSKsoEnum_msoCTPDockPositionLeft;
表示面板的位置,这里是在表格的左侧,有些人觉得需要用到汇总的会影响,可以放到右侧或其他地方。
    这个网页的功能是竖向列表展示表格的工作表,从wps论坛看到的,按照我的想法扔给AI增加了同步和刷新功能,修改了支持银河麒麟系统,目前没怎么使用,后续有需要再添加,比如工作表直接重命名、隐藏等等。打开新的工作簿等有变动可以按刷新,可以拖动条目实现工作表的重新排列,按刷新还原或者按同步进行实际移动,可以根据自己需要打造更复杂的功能。这样终于解决了以前工作表太多不好查看的问题。
    但是有个问题,taskpane好像最窄只能160还是多少,就如我上图所示,已经最窄了,没办法更窄了。

已关注

关注

重播 分享

sheetlist下载地址见原文