【技巧分享2-接上篇】AirScript脚本的weebhook及令牌在本地使用JS下载在线表格的数据

EnterZero
EnterZero

创作者俱乐部成员

https://bbs.wps.cn/topic/48028?chan=share&fromshare=copylink

上篇传入数据到在线文档。

本篇下载数据到本地文档

这是在线表格的AirScript代码,以二维数组的形式获取表格数据并返回数据;

//使用AirScript将当对应在线表格数据打包成一个字典,并返回这个字典
  var datarng=Application.Worksheets("优惠券").UsedRange.Value2.slice(1);
  return datarng;

这里返回的格式如下:

[["张三"],["李四"],["王二"],["麻子"]

这里的值之所以是以二维数组的形式是为了方便本地表格直接写入数据,简化代码;

PS:目前本地JS一维数组只支持行直接写入数组,小伙伴可以试试以下两组代码的区别。

{

var arr=["张三","李四,"王二","麻子"]

Range("A1:D1").Value2=arr

}

{

var arr=["张三","李四,"王二","麻子"]

Range("A1:A4").Value2=arr

}

以下是本地获取数据代码参考

function 优惠券更新(){
    var jsdata={"Context":
                    {"argv":{"msg":"更新优惠券",
                            },
                    }
                
                };
                GetToKsheet(jsdata)
}

async function GetToKsheet(jsdata){
    
    try {
        const url = "https://www.kdocs.cn/api/v3/ide/file/359834460**/script/V2-4pTB7Rif8QPu7QxVuhSERR/sync_task";
        
        const payload = jsdata;
        const response = await fetch(url, {
            method: "POST",
            headers: {
                "Content-Type": "application/json",
                   "AirScript-Token":"3e3qlYEx1DkjBaZ7f0p***"
            },
            body: JSON.stringify(payload)
        });
        //获取Air打包的数组
        if (response.status==200) {
            const result = await response.json();
            var datarng=result.data.result;
            console.log("Post successfully:"+result.status);
            console.log(datarng[0].join("-"))
        //在本地表格更新获取的数组内容
            Application.Worksheets("券名及成本").UsedRange.Offset(1,0).Clear()
            for (let i=0;i<=datarng.length;i++){
                var row=2+i;
                Application.Worksheets("券名及成本").Cells(row,1).Resize(1,4).Value2=datarng[i]
            }
            alert("更新成功")
            }
        }catch(err){
            console.error(err.status)
        }
}

时间有限 就分享这些,欢迎评论区讨论!!!

四川省
浏览 58
收藏
点赞
分享
+1
+1
全部评论