是否可以一次隐藏Google电子表格的多行?

时间:2016-04-13 19:15:13

标签: javascript google-apps-script google-sheets

所以我在下面使用这个脚本(信用:Eduardo Kuwakino)。 我有这个问题,它隐藏了A列中的行:A,值为“x”一个一个。 是否有可能让正在编辑这些电子表格的人“减少痛苦”?

function hideCells(sheet)
{
    var maxRows = sheet.getMaxRows();

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

  //get data from clumn A
  var data = sheet.getRange('A:A').getValues();

  //iterate over all rows
  for(var i=0; i< data.length; i++){
    //compare first character, if asterisk, then hide row
    if(data[i][0].charAt(0) == 'x'){
      sheet.hideRows(i+1);
    }
  }}

function onOpen() {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();

  for(var i=0; i< sheets.length; i++){

      hideCells(sheets[i]);
  }
}

1 个答案:

答案 0 :(得分:3)

有一种方法hideRows可以同时隐藏多行,但它们必须连续。在您的情况下,行通常不会是连续的。所以脚本必须逐个隐藏它们(或者当一些碰巧在一起时可能成组,但我不认为这会有多大帮助)。事实上,这在一张大纸上会很慢。

作为替代方案,我建议使用filter view,专门按照自定义公式=A2<>"x"

的列A过滤工作表

filter view

每个过滤器视图都有自己的URL,可以将其发送给编辑电子表格的人员。他们只会看到A中的值与“x”不同的行。