我编写了一个脚本,每隔几个小时就会向Google Apps电子表格中添加新的一行。这是我发现第一个空行的功能:function getFirstEmptyRow() { var spr = SpreadsheetApp.getActiveSpreadsheet(); var cell = spr.getRange('a1'); var ct = 0; while ( cell.offset(ct, 0).getValue() != "" ) { ct++; } return (ct);}它可以正常工作,但是当到达约100行时,它变得非常缓慢,甚至十秒钟。我担心到达数千行时,它会太慢,可能超时或更糟。有没有更好的办法?
3 回答
互换的青春
TA贡献1797条经验 获得超6个赞
Google Apps脚本博客上有一篇有关优化电子表格操作的文章,其中讨论了可以真正加快处理速度的批处理读写。我在具有100行的电子表格上尝试了您的代码,大约花了七秒钟。通过使用Range.getValues(),批处理版本需要一秒钟。
function getFirstEmptyRow() {
var spr = SpreadsheetApp.getActiveSpreadsheet();
var column = spr.getRange('A:A');
var values = column.getValues(); // get all data in one call
var ct = 0;
while ( values[ct][0] != "" ) {
ct++;
}
return (ct);
}
如果电子表格足够大,则可能需要以100行或1000行的块为单位获取数据,而不是获取整个列。
添加回答
举报
0/150
提交
取消