【问题标题】:Google Apps Script: delete Row from Sheet if Cell DOES NOT contain Value from ArrayGoogle Apps 脚本:如果单元格不包含数组中的值,则从工作表中删除行
【发布时间】:2021-11-08 06:08:56
【问题描述】:

在 Google 电子表格中,我有一个“数据表”。 “J”列中的单元格包含“ColumnName”和“en”、“fr”、“de”等语言代码。我正在尝试删除除具有数组“valuesToLeave”值的行之外的所有行。

谁能告诉我这里哪里出错了?

function deleteRowsLangs() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('DataSheet');
  var r = s.getRange('J:J');
  var allValues = r.getValues();
  var valuesToLeave = ["en", "fr", "de"];
  for(var i=allValues.length-1;i>=0;i--)
  
  if(allValues[i] != valuesToLeave[0]){
      s.deleteRow(i+1);
      
    } else {
      //doNothing
    } 
  }

【问题讨论】:

    标签: arrays google-apps-script google-sheets delete-row


    【解决方案1】:
    function deleteRowsLangs() {
      const ss = SpreadsheetApp.getActive();
      const sh = ss.getSheetByName('DataSheet');
      const rg = sh.getRange(1,10,sh.getLastRow(),1);
      const vs = rg.getValues().flat();
      const vtl = ["en", "fr", "de"];
      let d = 0;
      vs.forEach((e,i) => {
       if(!~vtl.indexOf(e)){sh.deleteRow(i + 1 - d++)}
      });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-02
      • 2017-06-20
      • 1970-01-01
      • 1970-01-01
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多