Google Apps脚本超时-追加7张

时间:2018-08-23 13:47:42

标签: javascript google-apps-script google-sheets

我有一个脚本达到了Google脚本超时限制-它会将7张纸附加在一起,每张纸包含大约300-500行,但是每次都超时。有什么方法可以优化脚本以防止脚本失败?

function concatAllSheets()
{
  var includedSheet=['GA_DE','GA_SE','GA_FR', 'GA_IT', 'GA_ES', 'GA_UK', 'GA_NL'];
  var ss = SpreadsheetApp.openById("#ID HERE#");
  var allSheets=ss.getSheets();
  var sheetName='Data'
  var mother=ss.insertSheet(sheetName);
  for(var i=0;i<allSheets.length;i++)
  {
    var sht=allSheets[i];
    if(includedSheet.indexOf(sht.getName())>-1)
    {
      var rng=sht.getDataRange();
      var rngA=rng.getValues();
      for(var j=0;j<rngA.length;j++)
      {
        var row=rngA[j];
        mother.appendRow(row);
      }
    }
  }
}                                                                                                                              

1 个答案:

答案 0 :(得分:0)

尚不清楚为什么要使用setValues()在1次调用中附加每张工作表的全部内容时,为什么要逐行附加每张工作表

  var motherNextRow = 1; // start at row 1

  for(var i=0;i<allSheets.length;i++)
  {
      var sht=allSheets[i];
      if(includedSheet.indexOf(sht.getName())>-1)
      {
         var rng=sht.getDataRange();
         var rngA=rng.getValues();

         if(rngA.length>0){
            mother.getRange(motherNextRow, 1, rngA.length, rngA[0].length).setValues(rngA);
            motherNextRow += rngA.length;
         }
       }
    }