wps多维表格api调用处理——基于airscript脚本下载附件的两种方法
评论
收藏

wps多维表格api调用处理——基于airscript脚本下载附件的两种方法

经验分享
Is_River
2026-02-28 09:53·浏览量:463
Is_River
影刀高级开发者
发布于 2026-02-28 09:53463浏览

实际业务中由于需要用到wps附件上传下载,但官方并没有这方面的指令

经过查询wps社区发现有限制,不能以常规的方法用API接口直接下载附件

经过深入研究wps后,发现使用wps中的airscript脚本可以获取到附件中的下载地址url。对此,基于airscript脚本衍生两种下载方法。

方法1:api调用列举记录接口获取附件下载地址

参考以下文档:https://365.kdocs.cn/3rd/open/documents/app-integration-dev/guide/dbsheet/Api/AttachmentField_getValue

可以看到在这里,我们使用airscript获取图片和附件字段是有专门的脚本的,并且还能够返回LinkUrl。此时,我们点进去Attachment获取详细信息https://365.kdocs.cn/3rd/open/documents/app-integration-dev/guide/dbsheet/Api/Attachment。向下滑,可以看到脚本示例,不过它是获取附件名称的属性。

要想获取附件下载链接则只需要改一下属性即可。下面两种方式,效果是相同的,为了适应不同需求场景

效果如下

需要注意的是:如果直接在浏览器中用链接下载的文件是这种类型的,因为没有后缀名

后面我们使用影刀自带的指令http下载加上xlsx后缀名即可

此时,我们将这个下载链接写进新建的字段中,参考如下:https://365.kdocs.cn/l/ctzsgDlAGF0l

效果如下

完整AirScript脚本

function main() {
  const dbCellValue = Application.Sheets(1).Views(1).RecordRange("G","@图片和附件").Value
  const attments = dbCellValue.Value
  console.log(attments[0].FileName)
  console.log(attments[0].LinkUrl)
  Application.Record.UpdateRecords({//更新记录
      SheetId: 1,//数据表id
      Records: [{
          id: "G",//记录id
          fields: {
                下载链接: attments[0].LinkUrl
          }
      }]
  })
}
main()

之后我们只需要设置好自动化流程,每次新增或修改附件字段内容就将下载地址写进对应记录中的字段

而在airscript脚本中接收参数即可

效果如下:

每次我们增加一个附件就会自动将其临时下载地址写进去

写进来以后就好办了,影刀中只需要调用之前已经封装好的列举记录指令(这个指令是自己封装的,上一篇文章中有写过),获取这个下载链接内容即可。获取到内容后,用http下载指令下载文件就好了

影刀中完整下载附件代码-调用列举记录指令

方法2:api调用AirScript脚本获取附件下载地址

参考文档:AirScript 概述 | AirScript文档

基本配置

脚本代码

这里的sheetId如果不能直接用数字,则替换为数据表名称即可,不过要和recordId一样,${sheetId}包裹

var sheetId = Context.argv.sheet_id;//脚本入参,定义一个变量接收这个参数值
var recordId = Context.argv.record_id;//脚本入参,定义一个变量接收这个参数值
function main() {
  const results=[]
  const dbCellValue = Application.Sheets(sheetId).Views(1).RecordRange(`${recordId}`,"@图片和附件").Value
  const attments = dbCellValue.Value
  results.push({'file_name':attments[0].FileName, 'down_url':attments[0].LinkUrl})
  return results
}
return main()//把函数的返回值作为脚本的返回值

影刀指令则如下设置:

效果如下:

两种方法都可以用,看个人选择。目前已应用于实际场景一个多月,暂无问题。

本次分享的是下载附件,有时间再分享上传附件的方法。有疑问,评论区聊

收藏2
全部评论1
最新
发布评论
评论