新手尝试wpsjs加载项指北
创作者俱乐部成员
首先声明,我是前端菜鸟,个人浅见,大佬见笑
如果你还不熟悉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" 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里写宏和注册自定义函数
在官方例子的基础上尽量简化了,全是文本文件,一目了然
社区管理员
创作者俱乐部成员
创作者俱乐部成员
WPS函数专家
创作者俱乐部成员