0

我想将行从一个谷歌表导入到另一个,但是源表导入了许多空行。现在我使用过滤器功能来摆脱这些行,但它们不会消失,谁能告诉我为什么?

var a = SpreadsheetApp.openByUrl("url").getSheetByName("Admin Use Only").getRange(4,1,6,21).getValues();

  var b = SpreadsheetApp.getActive().getSheetByName('Credit_Detail'); 

  b.getRange(b.getLastRow() +1, 1, a.length,21).setValues(a);

  //filter function below:

  var otarget=b.getRange(2,1,b.getLastRow()-1, 26).getValues();

  var data=otarget.filter(function(r){

    return !r.every(function(cell){

    return cell === "";});

  });

  Logger.log(data);

  b.getRange("A2:Z").clearContent();

  b.getRange(3,1,data.length,data[0].length).setValues(data);
4

1 回答 1

0

这就是我将如何做到的。首先,创建一个变量来存储源的数组。然后运行 ​​for 循环扫描第一列是否有空。类似于: for (var i = 0, i < data.length; i++) { if (data[i][0] != '') { XXXX } }

XXXX 意味着您可以输入代码来创建一组新的数组,该数组可以立即传递给目标工作表,也可以使用追加行将非空白行逐个传输到目标工作表。

注意:如果您要处理数千行的大数据,创建一个新数组来存储非空行将加快执行时间。

于 2019-06-13T16:22:29.933 回答