永远不要“一次推送数组的每一行”。这是笨重的代码,启动速度非常慢。设置值与获取值非常相似。您可以声明一个范围变量,其中包含适合值尺寸的适当坐标[ ][] 数组,并将整个值数组传递给 Range 对象的“setValues()”方法。
getRange() 的方法签名之一如下:
sheet.getRange(row, column, numberOfRows, numberOfColumns);
更多信息https://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangerow-column-numrows-numcolumns
前 2 个参数用于范围中最左上角的单元格,而其他参数则定义范围应跨越的行数和列数。
假设您想开始从目标工作表中的第一个单元格插入值,下面是您需要的单行代码。
sheet.getRange(1, 1, sheetValues.length, sheetValues[0].length);
行数是数组的长度,列数是数组第一个元素(行)的长度。
UPDATE
我错过了埋在你的代码中的评论。您可以在将值写入目标工作表之前对其进行过滤。
sheetValues = sheetValues.map(function(row){
if (row[9] == 'Target') { return row; }
});