把在线表格当成在线剪贴板来用

wils
wils

创作者俱乐部成员

今天的问题是,实现个简单的在线剪贴板,可以在不同电脑间复制粘贴内容。

在一台电脑上按ctrl+shift+c复制选中范围

在另一台电脑上按ctrl+shift+v粘贴内容

其实就是两个宏,最简单的利用在线表格的令牌,读写内容🤣

💡

function remotecopy()

{

let a = JSON.stringify(Selection.Value2)

fetch('https://www.kdocs.cn/api/v3/ide/file/xxx/script/yyy/sync_task', {

method: "POST",

headers: {

"AirScript-Token": "zzz",

},

body: `{"Context":{"argv":{"a":${a}}}}`

}).then(r=>r.text()).then(console.log)

}

function remotepaste()

{

fetch('https://www.kdocs.cn/api/v3/ide/file/xxx/script/yyy/sync_task', {

method: "POST",

headers: {

"AirScript-Token": "zzz",

},

body: `{"Context":{"argv":{"a":[]}}}`

}).then(r=>r.json()).then(x=>{

let a = x["data"]["result"]

Selection.Resize(a.length, a[0].length).Value2 = a

})

}

代码中的xxx、yyy、zzz要改成对应的在线表格的令牌

然后需要设置这两个宏的快捷键


在线表格的脚本如下

👋

let a = Context.argv.a

if (a.length > 0) {

ActiveSheet.UsedRange.ClearContents()

let e = ActiveSheet.Range("A1").Offset(a.length - 1, a[0].length - 1).Address()

ActiveSheet.Range("A1:" + e).Value2 = a

return

}

return ActiveSheet.UsedRange.Value2

刚接触电脑时就曾经尝试,在一台机器上复制,到另一台上粘贴,结果当然是可耻的失败了😂

写的比较粗糙,很多地方需要改进,不过bug终究是运行起来了

海南省
浏览 613
1
8
分享
8 +1
6
1 +1
全部评论 6
 
进123
请问大神,怎么样线下表格与云文档动态交流数据啊?例如线下a提交卖出苹果数2,b提交是3,云表格分别接收并且累计。然后实时反馈当前卖出的总数。
· 广东省
回复
wils
wils

创作者俱乐部成员

要看你怎么设计录入的界面 线下表格,如果是每次新增一行记录时,同步到在线,就在js宏里的worksheet_change事件里写上面的代码 但用令牌发送请求时,并不记录身份a或b 要不就用多维表里的数据收集视图,类似access设计界面,分享给a和b之后,两者的提交可以分别记录,再设计个汇总表,比本地表格用令牌提交要完善一点
· 广东省
回复
 
麦宇哲
不错哦
· 北京
1
回复
 
懒得批爆
懒得批爆

创作者俱乐部成员

好像水果就可以这么操作吧,在MacOS上复制后,在iPad上粘贴也可以。
· 四川省
1
回复
 
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

哇哦你终于解决了隔空复制,厉害了!!
· 辽宁省
2
回复
wils
wils

创作者俱乐部成员

感谢老师捧场
· 海南省
回复