我有一个脚本达到了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);
}
}
}
}
答案 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;
}
}
}