Google apps script 仅将非空单元格附加到另一个工作表google脚本

Google apps script 仅将非空单元格附加到另一个工作表google脚本,google-apps-script,google-sheets,filtering,google-sheets-api,Google Apps Script,Google Sheets,Filtering,Google Sheets Api,我只想复制C&E列中的非空单元格,并将它们全部追加到“更新”工作表的第1列。下面是我尝试复制非空单元格的内容,但它没有附加 这是供参考的 function emaillFilter(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var ws = ss.getSheetByName("Email"); var updateSheet = ss.getSheetByName("Update"); var range = ws

我只想复制C&E列中的非空单元格,并将它们全部追加到“更新”工作表的第1列。下面是我尝试复制非空单元格的内容,但它没有附加 这是供参考的

  function emaillFilter(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ws = ss.getSheetByName("Email");
  var updateSheet = ss.getSheetByName("Update");
  var range = ws.getRange(1,5,ws.getLastRow());

   var emptycells = SpreadsheetApp.newFilterCriteria().setHiddenValues(['']).build(); 
   var filter = range.getFilter() || range.createFilter();
       filter.setColumnFilterCriteria(5, emptycells);
  var data = ws.getRange(2,5,ws.getLastRow()).getValues();
  var array = [];
  for (var i = 0; i < data.length; i++){
    if(!ws.isRowHiddenByFilter(i+1)){  
       array.push(data[i]);
    }
  }
  updateSheet.getRange(updateSheet.getLastRow()+1, 1, array.length).setValues(array);
}
函数emaillFilter(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var ws=ss.getSheetByName(“电子邮件”);
var updateSheet=ss.getSheetByName(“更新”);
var range=ws.getRange(1,5,ws.getLastRow());
var emptycells=SpreadsheetApp.newFilterCriteria().setHiddenValues(['']).build();
var filter=range.getFilter()| | range.createFilter();
filter.setColumnFilterCriteria(5个空细胞);
var data=ws.getRange(2,5,ws.getLastRow()).getValues();
var数组=[];
对于(变量i=0;i
输入表C&E列

所需输出-粘贴列C和附加E,在另一张表的列A中不带空格

这个怎么样:

function emaillFilter(){
  const ss=SpreadsheetApp.getActive();
  const sh=ss.getSheetByName("Email");
  const ush=ss.getSheetByName("Update");
  const data=sh.getRange(2,1,sh.getLastRow(),5).getValues();
  var array=[];
  data.forEach(function(r,i){
    if(r[2] && r[4]) {
      array.push(r);
    }
  });
  ush.getRange(ush.getLastRow()+1, 1, array.length,array[0].length).setValues(array);
}
好吧,根据你的评论,我想你想要这个:

所需输出-粘贴列C和附加E,在另一张表的列A中不带空格

但我必须承认,我看不到第二张图片中反映了这一点,所以我们可能需要另一次迭代

function emaillFilter(){
      const ss=SpreadsheetApp.getActive();
      const sh=ss.getSheetByName("Email");
      const ush=ss.getSheetByName("Update");
      const data=sh.getRange(2,1,sh.getLastRow(),5).getValues();
      var array=[];
      data.forEach(function(r,i){
        //is columnC and columnE both truth
        if(r[2] && r[4]) {
          array.push([r[2] + ',' + r[4]]);
          //is columnC truthy and columnE falsy
        }else if(r[2] && !r[4]) {
          array.push([r[2]]);
        }
      });
      ush.getRange(ush.getLastRow()+1, 1, array.length,array[0].length).setValues(array);
    }
好吧,我想就是这样:

function emaillFilter(){
      const ss=SpreadsheetApp.getActive();
      const sh=ss.getSheetByName("Email");
      const ush=ss.getSheetByName("Update");
      const data=sh.getRange(2,1,sh.getLastRow(),5).getValues();
      var array1=[];
      var array2=[];
      data.forEach(function(r,i){
        if(r[2]) {
          array1.push([r[2]]);
        }
        if(r[4]) {
          array2.push([r[4]]);
        }
      });
      var array=array1.concat(array2);
      ush.getRange(ush.getLastRow()+1, 1, array.length,array[0].length).setValues(array);
    }
谢谢你的图片。他们真的帮了大忙


请不要一次问几个问题。另外,请提供一个或一个工作表示例以及所需的结果。感谢Cooper,它的部分工作原理是不复制C列中的所有数据,而只获取E列中包含数据的行,我想复制C&E列中的所有非空行,并仅在更新表第一列中附加这两列。我已经添加了两个有关inputsheet和所需输出表的屏幕截图,希望有助于编辑图像,我想要的是将输入的C&E列粘贴到输出的A列中,而我看不到空单元格。他们必须在底部吗?