Google 电子表格脚本执行时间限制

Google spreadsheet script time limit of execution

我编写了 gs 脚本来清除工作表中所有单元格的数据。电子表格有很多表(大约 200 张),我得到了时间限制执行错误。也许有人知道如何解决这个问题。这是我的代码示例。

function cleanAllOld() {

  var sheetsName = new Array();
  var destination = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/link");
  var sheets = destination.getSheets();

  for (var k = 0; k < sheets.length; k++) {

    sheetsName.push([sheets[k].getName()]);

    for (var p = 0; p < sheetsName.length; p++) {
      var sheet = destination.getSheetByName(sheetsName[p]);
      if (sheet === null) {} else {
        sheet.getDataRange().clearContent();
      }
    }
  }
}

我认为问题在于获取数据范围。

尝试替换这个

sheet.getDataRange().clearContent();

通过这个:

sheet.clearContents();

我没有完全理解你的代码,但我认为他太复杂了。这是一个有效的示例:

function AllDelete() {

  var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/link");
  var sheets = ss.getSheets();
  var i = 0;

  for(i in sheets){

    sheets[i].clearContents();

  }

}

编辑:Max 很快而且是正确的,getDataRange() 方法使用了大量资源