Google SpreadSheet脚本:如何过滤DataRange

时间:2016-05-24 18:18:27

标签: google-spreadsheet-api

我正在使用

  sheet.getDataRange() 

获取所有细胞。它获取甚至隐藏的所有行(已过滤)。

如何才能获得不隐藏的行(用户在打开电子表格时看到的行)?

谢谢。

1 个答案:

答案 0 :(得分:0)

实际上,Integration of Tools/Filter with google apps script上已存在问题,并且基于该问题跟踪器,此功能尚未添加。

然而,您可以尝试在此SO帖子中提供的替代解决方案 - Google Script Filter Or Hide Row。给出的解决方案之一是使用数组和hide方法减少一组数据,如下所示。

function MasterFilter() {
  var headers = 4; // # rows to skip
  var sheet = SpreadsheetApp.getActiveSheet();
  var maxRows = sheet.getMaxRows();

  //show all the rows
  sheet.showRows(1, maxRows);

  //get data from column B
  var data = sheet.getRange('B:B').getValues();

  //iterate over all rows
  for(var i=headers; i< data.length; i++){
    if(data[i][0] == false){
      sheet.hideRow(sheet.getRange(i+1,1));
    }
  }
}

我希望其中一个解决方案适合您。 :)