【问题标题】:Prevent users from creating new sheets in a shared google spreadsheet阻止用户在共享的 Google 电子表格中创建新工作表
【发布时间】:2015-06-16 16:14:55
【问题描述】:

我创建了一个电子表格,其中所有工作表都受到保护,除了单个单元格之外,用户应该在其中输入搜索值,从而过滤工作表。我共享了启用编辑功能的电子表格以允许这样做,但这也使用户能够创建新工作表,我想阻止这种情况。

也许我使用的不是实现我想要的最佳方式,所以欢迎提出建议。我看到有人建议在类似的用例中使用表单,但我不知道如何将他们的调查功能应用于我的需求。

编辑:这是共享电子表格:https://docs.google.com/spreadsheets/d/1C4mrBWJxPLrFQ4bp82UA2ICOr1e6ER47wF7YuElyoZg/edit?usp=sharing

【问题讨论】:

    标签: google-sheets google-docs


    【解决方案1】:

    您可以使用脚本来删除每个新创建的(不是由所有者创建的)工作表。以下是此类脚本的示例:

    // Deletes any tab named "SheetN" where N is a number 
    function DeleteNewSheets() {
      var newSheetName = /^Sheet[\d]+$/
      var ssdoc = SpreadsheetApp.getActiveSpreadsheet();
      var sheets = ssdoc.getSheets();
      
      // is the change made by the owner ?
      if (Session.getActiveUser().getEmail() == ssdoc.getOwner().getEmail()) {
        return;
      }
      // if not the owner, delete all unauthorised sheets
      for (var i = 0; i < sheets.length; i++) {
        if (newSheetName.test(sheets[i].getName())) {
          ssdoc.deleteSheet(sheets[i])
        }
      }
    }
    
    

    然后设置一个触发器,在发生更改(例如创建工作表)时运行此函数DeleteNewSheets

    注意:如果英语不是文档语言,您应该更改正则表达式/^Sheet[\d]+$/,例如法语应该是/^Feuille [\d]+$/

    【讨论】:

      【解决方案2】:

      如果没有看到您现有的电子表格,Seedmanc,您工作表的“数据”菜单下的 Google 的“过滤视图”选项可能会有所帮助,因为它允许所有者/编辑者创建和保存过滤器,这些过滤器也可供仅查看的用户访问。

      此外,仅查看用户可以创建他们独有的过滤视图。一旦他们进入过滤范围,就会出现菜单箭头...

      ...允许他们按条件(包括自定义公式!)或按值进行过滤。因此,根据您的过滤器的精细程度以及您的用户对电子表格的了解程度,过滤器视图可以提供更灵活的过滤器,同时仍能保护您的工作表。

      (阅读有关 Google 表格的更多信息filter views here。)

      【讨论】:

      • 感谢您的回答。这是共享电子表格:docs.google.com/spreadsheets/d/…我之前确实尝试过使用过滤器,但是在第二列中搜索单词的简单过滤器无法在我的工作表的第一列中显示类别名称(绿色),因为相应的单元格第二列是空的。因此我不得不使用自定义查询调用。另外,我想让它保持用户友好,这样用户只需在单元格中输入搜索值,而无需过滤视图。
      • 如果您为杂志类别创建一个新列(例如 Col A = 日期,Col B = 类别,Col C = 名称),那么过滤对您的用户来说可能会简单得多。它还可以增加过滤器的特异性。例如,用户可以按 Col B 中的值进行过滤以选择“hm3 Special:”按 Col C 中的条件进行过滤,其中文本包含“mizuki”。
      • 虽然这解决了用户的问题,但其他人可能无法撤消编辑权限。有没有办法防止为这些情况添加工作表?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      相关资源
      最近更新 更多