【技巧分享】利用AirScript脚本的weebhook及令牌收取本地表格数据写入在线表格

EnterZero
EnterZero

创作者俱乐部成员

年底好忙!

目前多维表中的自动流程可以自动收取数据写入多维表,普通表格自动化流程没有类似功能,本次分享通过本地JSA通过AirScript脚本的weebhook及令牌,向在线表格写入数据的技巧!

需要发送的数据如下:

本地JS代码,具体含义见注释:

function SendToKsheet(){
    //这将表格中的数据去除第一行,以二维数组的形式赋予变量Date,二维数组方便等会在线表格直接写入数据;;
    //二维数组:[["a","b","c"]["1","2","3"]["4","5","6"]]
    var date=Application.Sheets("发送测试").UsedRange.Value2.slice(1);
    //将date数据封装,这里也写入了一个需要接收数据的表格名字;
    var jsdate={"Context":
                    {"argv":{"js":date,
                            "sheet_name": "测试2"
                            },
                    }
                };
    //打印一下JOSN格式的数据,看看有没有错误;
    Console.log(JSON.stringify(jsdate))
    //AirScript脚本的weebhook
    var url="https://www.kdocs.cn/api/v3/ide/file/292625212373/script/V2-4s9NawoFRm9liwYJvzHzO1/sync_task";
    //使用fetch方法,方式使用post,按照如下写入请求头headers(发送格式及令牌密匙);body使用JSON.stringify方法转为josn格式
    const response = fetch(url, {
        method: "POST",
        headers: {
            "Content-Type": "application/json",
            "AirScript-Token":"3e3qlYEx1DkjBaZ7f0pzzF"
        },
        body: JSON.stringify(jsdate)
    });
    
}

在线AirScript代码,具体含义见注释:

var arr=Context.argv.js;//获取发送内容
var row=arr.length+1;//获取内容条数
Application.Sheets(Context.argv.sheet_name).Range(`a2:e${row}`).Value2=arr;//在对应单元格写入收取内容

PS:需要封装的内容建议都封装在argv对象下面,我试了在Context下直接封装表名,收不到对应表名,未深入测试,不知道是不是BUG。

实测效果请看VCR:

再见各位小伙伴!

下次见!!🤩

四川省
浏览 269
2
5
分享
5 +1
2
2 +1
全部评论 2
 
code4101
Context其他参数的问题我有反馈:https://bbs.wps.cn/topic/47474,目前官方只说联系了开发同学,也没个后续了。 传数据的我也有一个框架,虽然原理本质也是一样的,不过我考虑的比较多和复杂,好像就没人看了。你这个简单直观,学习了
· 福建省
回复
EnterZero
EnterZero

创作者俱乐部成员

相互学习 相互学习
· 四川省
回复