我们正在制作一个有 15 张纸的 excel 工作簿(大小约为 13 MB)。我们将数据粘贴在一张纸上,而所有其他纸上都有适量的公式链接到此数据转储表。我们需要粘贴大约。10,000 行和 30 列,每次 2500 行。我们在每 4 次迭代后(即粘贴 10,000 行后)使用 context.sync() 同步工作簿的上下文。这整个过程大约需要。总共70秒。我们尝试在每 2500 行粘贴一次后使用 context.sync() ,但这会进一步减慢进程。
await Excel.run(async function main(context) {
var totalrowcount = result.totalrows;
iterations = Math.ceil(totalrowcount / 2500);
for (i = 1; i <= iterations; i++) {
let names = context.workbook.names;
var rng;
data_arr = result.data;
data_arr.splice(0, 1);
var rowOffset = (i - 1) * 2500;
rng = names.getItem(rangeName).getRange().getOffsetRange(1 + rowOffset, 3);
rng.getAbsoluteResizedRange(data_arr.length, data_arr[0].length).values = data_arr;
rng.untrack();
if(i % 4 == 0){
await context.sync();
}
else if(i == iterations){
await context.sync();
}
}});