阻止用户在共享的Google电子表格中创建新工作表

时间:2015-06-16 16:14:55

标签: google-sheets google-docs

我创建了一个电子表格,其中所有工作表都受到编辑保护,除了单个单元格外,用户应输入一个搜索值,用于过滤工作表。我与启用了编辑功能的电子表格共享,但也允许用户创建新的工作表,我希望这样做。

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

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

2 个答案:

答案 0 :(得分: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]+$/

答案 1 :(得分:0)

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

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

enter image description here

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

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