多维表里的GetRecords一定要注意检查offset
创作者俱乐部成员
曾有朋友问,在多维表里,如何去重一个数据表,后插入另一个数据表
https://bbs.wps.cn/topic/45271
当时我的回答既没有检查offset,又没有考虑逐条插入太慢
当时没注意文档里的注意事项,每次请求最多返回100条,所以如果不检查offset很容易导致GetRecords返回的数据不完整。。。
🔔 | function main(){ const d = new Set() let o do { const s = Application.Record.GetRecords({SheetId: 42, Offset: o}) for (const i of s.records) { d.add(i.fields['文本']) } o = s.offset } while (o) const ret = [] for (let i of d.keys()) { ret.push({"fields":{"文本": i}}) } Application.Record.CreateRecords(43, ret) } main() |
修改后的代码:
用d去重
用o记录offset,每次GetRecords之后检查o,除非undefined才能继续
先将结果写入ret数组,之后一次写入表,否则逐条写入特别慢
创作者俱乐部成员