WPS AirScript脚本合集(十):使用脚本自动获取“图片与附件”字段内容属性值

一、多维表格数据表及字段结构

1、数据表名:获取图片与附件属性值

2、视图名称:表格视图

3、字段设置:

◉ 字段名称:编号 - 字段类型:编号 - 编号格式:000001

◉ 字段名称:图片和附件 - 字段类型:图片和附件 -显示样式:已列表样式显示 - 图片上传方式:无需勾选 仅可通过移动端拍摄上传

◉ 字段名称:获取信息 - 字段类型:按钮 - 执行操作:点击按钮时,触发执行AirScript脚本 - 执行成功的提示:ψ(`∇´)ψ成功啦! - 按钮名称:点击按钮 - 按钮颜色:蓝色

◉ 字段名称:图片和附件字段属性值 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无

二、开发指南相关字段说明

WPS开放平台开发指南https://open.wps.cn/documents/app-integration-dev/guide/self-app/summary.html有相关字段说明,感兴趣的小伙伴可以自行前往研究学习下~

三、AirScript脚本说明

3.1 第一版(搭配自动化流程使用)

const recordid = Context.argv.recordid || Application.Selection.GetSelectionRecordIds()[0][0];
console.log("当前记录ID:", recordid);

const dbCellValue = Application.Sheets("获取图片与附件属性值").Views("表格视图").RecordRange(recordid, "@图片和附件").Value;
const attachments = dbCellValue.Value;

// 创建合并输出的容器
let fullOutput = "";
  
for (let i = 0; i < attachments.length; i++) {
  const attachment = attachments[i];
  // 构造带格式的JSON字符串
  const formattedJSON = JSON.stringify({
    [`FileId_${i+1}`]: attachment.FileId,
    [`FileName_${i+1}`]: attachment.FileName,
    [`FileSize_${i+1}`]: attachment.FileSize,
    [`FileType_${i+1}`]: attachment.FileType,
    [`ImgSize_${i+1}`]: attachment.ImgSize || "该值为空",
    [`LinkUrl_${i+1}`]: attachment.LinkUrl
  }, null, '\n') // 使用换行符格式化
    .replace(/"([^"]+)":/g, '"$1": ')  // 美化键值对显示
    .replace(/\n/g, '\n');             // 确保换行生效

  // 拼接完整输出
  fullOutput += `==== 附件 ${i+1} 完整属性 ==== \n${formattedJSON}\n\n`;
}

// 最终合并输出
console.log(fullOutput);
return {
  fullOutput:fullOutput
};

合并输出内容到一个变量中,脚本编辑器运行示例如下:

3.2 第二版(单独脚本编辑器中运行)

const recordid = Context.argv.recordid || Application.Selection.GetSelectionRecordIds()[0][0];
console.log("当前记录ID:", recordid);

// 获取附件字段的值
const dbCellValue = Application.Sheets("获取图片与附件属性值").Views("表格视图").RecordRange(recordid, "@图片和附件").Value;
const attachments = dbCellValue.Value;
  
// 循环输出每个附件的属性
for (let i = 0; i < attachments.length; i++) {
  const attachment = attachments[i];
  console.log(`==== 附件 ${i + 1} ====`);
  console.log("FileId:", attachment.FileId);
  console.log("FileName:", attachment.FileName);
  console.log("FileSize:", attachment.FileSize);
  console.log("FileType:", attachment.FileType);
  console.log("ImgSize:", attachment.ImgSize ? attachment.ImgSize : "该值为空"); // 当没有图片尺寸时显示提示
  console.log("LinkUrl:", attachment.LinkUrl);
}

每个属性值单独一个信息输出,脚本编辑器运行示例如下:

3.3 注意事项

1、如果是单独脚本编辑器中运行,受下方代码限制,鼠标需先选择一个表格视图中对应行记录,AirScript脚本才能成功运行;

const recordid = Context.argv.recordid || Application.Selection.GetSelectionRecordIds()[0][0];
console.log("当前记录ID:", recordid);

如果不在视图中选择对应行记录,AirScript脚本运行报错结果如下:

2、上述示例中数据表名为“获取图片与附件属性值”,视图名称为“表格视图”,字段名称为“图片和附件”,所以对应代码如下:

// 获取附件字段的值
const dbCellValue = Application.Sheets("获取图片与附件属性值").Views("表格视图").RecordRange(recordid, "@图片和附件").Value;
const attachments = dbCellValue.Value;

在实际应用中需修改脚本中对应的数据表名、视图名称和字段名称哦~

四、自动化流程设置

自动化流程设置如下,在第2步执行AirScript脚本需设置传入参数 行记录ID,脚本返回值为{"fullOutput":""}

注意“执行AirScript脚本”-配置参数-脚本入参和脚本返回值需切换英文输入法输入,如果第3步“修改记录”-配置参数-设置字段值点击+号无“第2步AirScript脚本的返回值”,需检查第2步“执行AirScript脚本”中配置参数-脚本入参和脚本返回值输入内容是否正确!

五、自动化流程运行输出示例

六、 自动化流程测试用例

测试场景:自动化流程的可用性(大白话:能用就行 :-D)

操作过程:点击“图片和附件”字段,选择“+本地文件”或“+云文档”,单一/批量上传文件,然后点击按钮观察测试结果

测试结果:“图片和附件字段属性值”自动出现文本内容,相关属性值打印无误

额外说明:

点击“图片和附件”字段,选择“+本地文件”或“+云文档”

◉ 支持上传的文件数量上限:20个

◉ 支持上传的文件类型

文字文件:*.doc,*.docm,*.docx,*.dot,*.dotm,*.dotx,*.wps,*.wpt

表格文件:*.csv,*.et,*.ett,*.xls,*.xlsm,*.xlsx,*.xlt,*.xltm,*.xltx

演示文件:*.dps,*.dpt,*.pot,*.potm,*.potx,*.pps,*.ppsm,*.ppsx,*.ppt,*.pptm,*.pptx

PDF文件:*.pdf

图片文件:*.bmp,*.jpg,*.jpeg,*.png,*.gif

其它文件:*.html,*.rtf,*.xml,*.txt

云文档文件:*.otl(智能文档),*.ksheet(智能表格),*.dbt(多维表格),*.pof(思维导图),*.pom(流程图)

不支持上传的文件类型有:

*.dbf,*.prn,*.zip,*.mht,*.tif,*.exe,*.dmg

◉ 支持上传的文件大小上限:暂不测试

以上数据仅人工测试通过,测试环境macOS Sequoia 版本15.1+WPS版本 7.4.1(8983)

在社区找到一个相关的问答贴,贴个路径记录下:https://bbs.wps.cn/topic/18452,感兴趣的小伙伴可以前去围观下

流程演示视频可跳转文章链接https://mp.weixin.qq.com/s/Geh3-gHUJbYesNE1kD8VUw进行观看~

广东省
浏览 299
收藏
2
分享
2 +1
+1
全部评论