代码之家  ›  专栏  ›  技术社区  ›  Jae

访问相同的电子表格但显示不同的记录,在谷歌电子表格中按类别过滤?

  •  0
  • Jae  · 技术社区  · 8 年前

    很好的一天,

    1 回复  |  直到 8 年前
        1
  •  0
  •   Brian    8 年前

    是的,你可以在功能上做到这一点,但它并不整洁,产生的问题比它解决的要多。下面是一个简单的示例:

    function hideSheet() {
      var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Your sheet");
    
      // Get the user accessing the sheet
      var user = Session.getActiveUser().getEmail();
    
      // Match an email. If you're using an array of people, you'll need to loop it.
      if(user != "email@email.com") {
    
        // If they don't match the test, hide the sheet.
        ss.hideSheet();
      } else {
        ss.showSheet();
    }
    

    设置 onOpen() 函数的触发器。用户将需要编辑权限(哪种类型会破坏目的),否则脚本将无法运行。如果是共享工作表,它也将隐藏 除非你为你的帐户测试,但出示表格将 而且 为共享用户显示。

    一个更好的解决方案是启动一个主工作表 =IMPORTRANGE(url, range) 在床单上。

    创建只有您有权访问的母版图纸。按区域为每张图纸命名。创建按要给其他人的区域命名的从属图纸。在单元格A1中,使用 =IMPORTRANGE("theMasterSheetUrl","New York!A:Z") . 更改范围值允许您仅共享主电子表格的一部分,因此纽约代表不会看到旧金山等。它避免了通过脚本添加/删除权限的所有麻烦,并确保他们需要访问的地区的最新数据。