新手尝试wpsjs加载项指北

wils

创作者俱乐部成员

首先声明,我是前端菜鸟,个人浅见,大佬见笑

如果你还不熟悉node和命令行,可以跳过第一第二步,先看最终结果是个啥

这里假定没用过vscode和nodejs。。。只要你会前端,没必要看下去了


第一步、安装nodejs,目前似乎v20LTS版本稳定一些,最新的版本有小伙伴报错

地址:https://nodejs.org/dist/latest-v20.x/

比如windows可以下载node-v20.19.0-win-x64.zip这个绿色的包解压来用,也可以下载msi那种安装包

区别在于前者需要手动设置环境变量PATH,以便后面在命令行里使用npm等命令

然后可以安装nrm之类或者手动改用国内源,以保证下载速度

🔔

npm install -g wpsjs@2.1.6

这里还是没有安装最新版,因为最新版用vite自动生成自定义公式,结构复杂了一点,不便于上手

第二步、创建例子,比如在桌面shift+右键,在此处运行powershell

🔔

wpsjs create test

选择电子表格、无

🔔

cd test

wpsjs build --exe

第三步、打开test文件夹,进入wps-addon-build,右键解压test.exe

可以看到,最后生成的exe,实际上就是把这个publish.xml文件和test_1.0.0复制到

C:\Users\Administrator\AppData\Roaming\kingsoft\wps\jsaddons即可

ps. 之所以有小伙伴问,为什么生成的exe只能安装一个加载项,因为它的逻辑简单,就是复制过去覆盖了publish.xml,按理说,如果上面的目录里已经有publish.xml,就不该复制,而是添加一行,用你喜欢的文本编辑器打开publish.xml看一眼就明白了

第四步、打开test_1.0.0文件夹

其中image、ui文件夹没用,删除

js文件夹里的dialog、systemdemo、taskpane没用,删除

index.html不动

main.js删除systemdemo那一行,以后不再动他

js/utils.js不动

所以最后只剩下:

  • ribbon.xml,这个是用来定义工具栏的,不要在意那些细节,全删掉

🔔

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui&#34; onLoad="OnAddinLoad">

<ribbon startFromScratch="false">

<tabs>

<tab id="wilsAddinTab" label="wils">

<group id="btnGroup" label="group1">

<button id="btn1" label="粘贴到不连续单元格" onAction="Onbtn1" size="normal"/>

</group>

</tab>

</tabs>

</ribbon>

</customUI>

只保留一个按钮,且只定义它的label标签和onAction运行哪个宏

  • js/ribbon.js,这个从第14行往后都删除,写你需要的宏比如Onbtn1

这就相当于按按钮运行一个JS宏

第五步、还是在ribbon.js里自定义公式

🔔

if (wps.AddCustomFunction !== undefined) {

wps.AddCustomFunction("w", "btoa", btoa, {

"name": "btoa",

"description": "",

"result": {

"type": "string"

},

"parameters": [

{

"name": "s",

"description": "",

"type": "string"

}

]

})

}

可以看到,这里的btoa是环境自带的,也可以自定义个函数,然后wps.AddCustomFunction注册

重启后可以在公式栏用=w.btoa("asdf")获得base64的字符串

这就相当于JS宏里自定义公式


总结一下:

  • 加载项在这个文件夹C:\Users\Administrator\AppData\Roaming\kingsoft\wps\jsaddons

  • 里面复制个publish.xml里面每一行jsplugin定义一个加载项,自己随便增减

  • 里面复制个test_1.0.0这样的目录,代表一个加载项

  • 里面的index.html保持原样

  • main.js删掉不需要的行,之后不动

  • js/utils.js不动

  • 只剩下ribbon.xml用来设计工具栏的按钮界面

  • 剩下的ribbon.js里可以定义从工具栏触发的宏、声明自定义公式


再进一步,可以自定义html作为用户窗体,随便发挥,千变万化;可以用oaassist接受网页或随便什么地方发来的请求等等,扩展性比JS宏好很多


但往简单说,平时只改ribbon.js一个文件也能用


至于node工具是用来方便开发,自动执行脚本的环境,需要看其他教程

如果你熟悉他当然方便,如果不熟悉,先不理他也能用


虽然我想尽可能简单,但还是说的太复杂,最简单的说法就是,复制6个文本文件,放到jsaddons文件夹就是个加载项,平时需要修改的就一个js就能用


后面又弄了个压缩包

地址: https://pan.baidu.com/s/1nlh9uTXaNa7EjbAX9yPNuw?pwd=8c4m 提取码: 8c4m

如果只想尝试加载项,不想安装node等环境,可以下载解压内容到

C:\Users\Administrator\AppData\Roaming\kingsoft\wps\jsaddons

打开表格后,工具栏会多出一个test,里面有一个按钮,和一个调式,一个w.btoa自定义公式

注意,如果jsaddons里已经有publish.xml,那就不要覆盖,而是手动用记事本加一行

需要自己修改的只有ribbon.xml里设计按钮,ribbon.js里写宏和注册自定义函数

在官方例子的基础上尽量简化了,全是文本文件,一目了然

广东省
浏览 237
1
3
分享
3 +1
7
1 +1
全部评论 7
 
WPS 冲浪队长

社区管理员

字都会!连起来还需要学习~
· 广东省
回复
 
学习
· 河南省
回复
 
wils

创作者俱乐部成员

最后又添加了一个压缩包 不想装node环境可以下载解压试一下 放心,6个文本文件,记事本打开看一遍就懂
· 广东省
回复
Tam Kingsley

创作者俱乐部成员

如果能把整个流程用流程图简单画一下就完美了,好像在网上没看到同类的文章,把整个WPS加载项的流程用流程图画一遍那种,这个感觉对入门有一个大概框架比较有用,跟着wils老师学习加载项
· 广东省
回复
 
wps新路

WPS函数专家

跟老师学习
· 重庆
回复
 
Tam Kingsley

创作者俱乐部成员

跟老师学习
· 广东省
回复