如何根据变量调整谷歌工作表视图?

时间:2015-07-13 20:38:28

标签: google-apps-script google-sheets

我有一个包含以下脚本的电子表格,可根据变量调整视图行:

function ConditionalHideRow() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Form responses 1");
  var maxrows = sheet.getMaxRows()
          for (var i = 0; i < maxrows; ++i) {            
              if (sheet.getRange(maxrows-i,4).getValue() == "var1" )  {
                sheet.hideRows(maxrows-i,1)  
              }
            else
            {
              sheet.showRows(maxrows-i,1)
            }

       }
}

我想在调整视图的页面中传递一个变量: 例如

  • 如果我在URL中传递var1,例如,包含var1的行是 如图所示,其他所有都不是
  • 如果我在URL中传递var2,例如 显示包含var2的行,其他所有行都不是

1 个答案:

答案 0 :(得分:0)

  

我尝试过函数doGet(e)var viewmode = e.parameter.view但是当我通过时似乎没有工作....?view =&#34; a&#34;

通过&#34; a&#34;到URL查询中的doGet(),它就像...?view=a;不需要撇号。

样品

function doGet(e){
  var parameter = e.parameter;
  if(parameter.view){ //check off the view type was passed
    ConditionalHideRow(parater.view);
  };
}
function ConditionalHideRow(condition){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Form responses 1");
  var maxrows = sheet.getDataRange().getHeight();
      for (var i = 0; i < maxrows; ++i) {            
          if (sheet.getRange(maxrows-i,4).getValue() == condition )  {
            sheet.hideRows(maxrows-i,1);  
          }
          else
          {
            sheet.showRows(maxrows-i,1);
          };
   }
}

这是偏离主题的,但getDataRange().getHeight()我的经验最好使用,因为getMaxRows()将返回总行数,即使它们是空的。

默认情况下,有1000个空行,即使您没有任何数据,仍然会循环显示。 getDataRange().getHeight()将为您提供显示任何数据的最后一行数。

另外,我只是好奇,你为什么要在行中向后循环?