WPS AirScript脚本合集(十七):多维表格结合自定义打印自动存档成图片、PDF、表格文件
因字数限制,内容做部分删减,完整文章见公众号文章链接:https://mp.weixin.qq.com/s/Zd1cjfMApHtkHGnKi3QXcA
一、WPS高级服务API
云文档API
对应的开发指南看这里:https://open.wps.cn/documents/app-integration-dev/guide/dbsheet/AirScript/AirScript-advanced-KSDrive.html,相关内容也不多,吧啦一两下就可以看完啦
可以重点关注下createFile()和openFile()这两个函数的用法!
网络API
可以重点看下get(url[, options])函数的用法哦
二、多维表格数据表及字段结构
1、数据表名:SVT员工工牌
2、视图名:表格视图
3、字段设置:
字段名称:cliD二维码编码内容 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无
字段名称:cliP1图片 - 字段类型:图片和附件 -显示样式:以缩略图样式显示 - 图片上传方式:无需勾选 仅可通过移动端拍摄上传
字段名称:cliF3本名 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无
字段名称:cliF4外文名 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无
字段名称:cliF7职业 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无
字段名称:cliF5出生日期 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无
字段名称:cliF6代表作 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无
字段名称:点击生成工牌 - 字段类型:按钮 - 执行操作:点击按钮时,触发执行AirScript脚本 - 执行成功的提示:ψ(`∇´)ψ请查收员工工牌 - 按钮名称:点击按钮生成工牌 - 按钮颜色:蓝色
字段名称:员工工牌 - 字段类型:图片和附件 -显示样式:以缩略图样式显示 - 图片上传方式:无需勾选 仅可通过移动端拍摄上传
字段名称:员工工牌图片URL - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无
字段名称:图片识别结果 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无
字段名称:点击进行资料存档 - 字段类型:按钮 - 执行操作:点击按钮时,触发执行AirScript脚本 - 执行成功的提示:(´▽`)资料存档成功 - 按钮名称:点击进行资料存档 - 按钮颜色:红色
字段名称:图片存档 - 字段类型:图片和附件 -显示样式:以列表样式显示 - 图片上传方式:无需勾选 仅可通过移动端拍摄上传
字段名称:PDF存档 - 字段类型:图片和附件 -显示样式:以列表样式显示 - 图片上传方式:无需勾选 仅可通过移动端拍摄上传
字段名称:表格存档 - 字段类型:图片和附件 -显示样式:以列表样式显示 - 图片上传方式:无需勾选 仅可通过移动端拍摄上传
三、自动化流程设置
3.1 生成草料二维码名片
非本次教程重点内容,纯搬运,源自文章链接:WPS AirScript脚本合集(九):一键执行!多维表格点击按钮即刻生成草料二维码https://mp.weixin.qq.com/s/sROfxoiQ5bD5rDe3gpCqdg
3.2 图片识别
非本次教程重点内容,纯搬运,源自文章链接:WPS AirScript脚本合集(十五):文字识别!调用百度智能云OCR服务识别图片内容https://mp.weixin.qq.com/s/2fkNeV0y34xnE71cZRaD2Q
注意“执行AirScript脚本”-配置参数-脚本入参和脚本返回值需切换英文输入法输入,如果第3步“修改记录”-配置参数-设置字段值点击+号无“第2步AirScript脚本的返回值”,需检查第2步“执行AirScript脚本”中配置参数-脚本入参和脚本返回值输入内容是否正确!
3.3 资料存档
本次教程重点内容!!!
四、AirScript脚本
因字数限制,脚本代码内容做删减,完整文章见公众号文章链接:https://mp.weixin.qq.com/s/Zd1cjfMApHtkHGnKi3QXcA
五、资料存档脚本逻辑解释
5.1 操作前提
因该脚本的应用场景是将自定义打印功能生成的表格模板按记录内容调整后自动存档到对应行记录的附件字段中,因此需要先使用自定义打印插件创建一个合适的表格模板
然后在自己的云文档空间中新建一个XLSX表格,将自定义打印表格模板的内容复制到XLSX表格中,并获取该模板的文档链接
5.2 配置填写
// 配置区
const SheetName = "SVT员工工牌"; //数据表名
const CustomFileUrl = '填写自定义打印模板文件链接'; //自定义打印模板文件链接
const DocumentSavePath = '填写打印模板另存文件保存指定路径'; //打印模板另存文件保存指定路径
SheetName数据表名根据实际情况填写,脚本中示例数据表名称为"SVT员工工牌";
CustomFileUrl填写自定义打印模板文件链接,即上一步新建的XLSX表格文档链接;
DocumentSavePath填写打印模板另存文件保存指定路径,获取方法如下:
登录网页版的WPS云文档,打开对应的文档文件夹,复制对应的路径即可。
5.3 获取记录ID和字段值
因字数限制,脚本代码内容做删减,完整文章见公众号文章链接:https://mp.weixin.qq.com/s/Zd1cjfMApHtkHGnKi3QXcA
获取当前记录ID和对应字段值,字段名称需根据实际情况修改
不同字段值的获取方法参考WPS开放平台开发指南https://open.wps.cn/documents/app-integration-dev/guide/dbsheet/Api/DateField_getValue.html字段内容里获取字段值的方式,不同的字段如日期字段、数字字段参考文档中对应的脚本编辑器示例调整即可,本质上大差不差
本次教程仅涉及文本、图片和附件这两个字段
5.4 根据图片URL获取图片数据
因字数限制,脚本代码内容做删减,完整文章见公众号文章链接:https://mp.weixin.qq.com/s/Zd1cjfMApHtkHGnKi3QXcA
上一步中图片和附件字段获取到的是图片的URL,这一步根据图片的URL通过发起get网络请求获取图片数据,并将图片数据转换为Base64编码,涉及get函数用法如下:https://open.wps.cn/documents/app-integration-dev/guide/dbsheet/AirScript/AirScript-advanced-http.html#get-url-options
5.5 获取当前日期和时间
为了记录资料的存档时间,需要获取当前日期和时间,格式为 "yyyyMMddhhmmss",如20251008234556代表2025年10月08日23时45分56秒
因字数限制,脚本代码内容做删减,完整文章见公众号文章链接:https://mp.weixin.qq.com/s/Zd1cjfMApHtkHGnKi3QXcA
5.6 另存自定义打印文件模板
因为需要根据行记录各个字段的具体内容调整自定义打印模板内容,所以需要将原先的自定义打印模板文件另存为新的文件,这里指定为XLSX表格文件(KSDrive.FileType.ET),不是智能文档、智能表格也不是多维表哈
因字数限制,脚本代码内容做删减,完整文章见公众号文章链接:https://mp.weixin.qq.com/s/Zd1cjfMApHtkHGnKi3QXcA
source填写需要另存为的文件链接;
dirUrl指定文档存放路径,如果不指定,默认生成在WPS云盘->我的云文档下;存放路径需要预留好足够的存储空间哦
name指定格式为“表名-cliF3字段记录值-存档时间”,如有需要,可自行修改
5.7 修改文件内容并导出为图片或PDF
因字数限制,脚本代码内容做删减,完整文章见公众号文章链接:https://mp.weixin.qq.com/s/Zd1cjfMApHtkHGnKi3QXcA
openFile()用法看这里!https://open.wps.cn/documents/app-integration-dev/guide/dbsheet/AirScript/AirScript-advanced-KSDrive.html#openfile
在表格中指定单元格写入值的用法看这里!https://airsheet.wps.cn/docs/api/excel/workbook/Range.html#value
在表格中指定单元格插入图片的用法看这里!https://airsheet.wps.cn/docs/api/excel/workbook/Range.html#insertimage
将文件导出为图片或PDF的用法看这里!https://airsheet.wps.cn/docs/api/excel/workbook/Workbook.html#%E7%A4%BA%E4%BE%8B-1-%E5%AF%BC%E5%87%BA-pdf
这里有一点需要强调说明下,关键知识哦(敲黑板ing)
代码file.Application.ActiveSheet.Range('B3')中的B3、E3、E4之类的指定是有所讲究的,打开之前自己新建的“自定义打印模板”XLSX表格,找到需要插入字段值的单元格,观察区域编号是什么
举个例子,“自定义打印模板”XLSX表格中在B3区域要写入cliP1图片内容,因此需要在此区域插入图片,即file.Application.ActiveSheet.Range('B3').InsertImage(base64Data_cliP1)
“自定义打印模板”XLSX表格中在E3区域要写入cliP3本名字段值,因此记录多维表格中cliP3本名字段值的变量写给该区域,即file.Application.ActiveSheet.Range('E3').Value = cliF3
5.8 存档到图片和附件字段中
因字数限制,脚本代码内容做删减,完整文章见公众号文章链接:https://mp.weixin.qq.com/s/Zd1cjfMApHtkHGnKi3QXcA
上一步已经实现将表格导出为PDF和图片,这一步将对应的文件链接写入字段中,相关用法看这里!https://open.wps.cn/documents/app-integration-dev/guide/dbsheet/Api/AttachmentField_setValue.html