查找第一个空行的更快方法

我编写了一个脚本,每隔几个小时就会向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行时,它变得非常缓慢,甚至十秒钟。我担心到达数千行时,它会太慢,可能超时或更糟。有没有更好的办法?


繁星淼淼
浏览 707回答 3
3回答

互换的青春

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行的块为单位获取数据,而不是获取整个列。
打开App,查看更多内容
随时随地看视频慕课网APP