Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 谷歌应用程序脚本-范围保护和访问_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 谷歌应用程序脚本-范围保护和访问

Google apps script 谷歌应用程序脚本-范围保护和访问,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在管理100多所学校的谷歌电子表格。每所学校的电子表格都有多个用户角色,例如校长、教练、教师等,我需要限制访问权限,只允许人们编辑特定范围。以编程方式保护范围将是最简单的解决方案,但不幸的是,目前使用Google Apps脚本无法做到这一点 去年,当我这样做时,我创建了一个包含所有受保护范围的模板。然后我复制了100多次模板,保留了所有的范围保护。然后,我以编程方式添加用户,并为他们提供仅限注释的访问权限。然后,我将他们的访问权限更改为“可以编辑”,并手动授予他们仅编辑所需范围的权限。这个过

我正在管理100多所学校的谷歌电子表格。每所学校的电子表格都有多个用户角色,例如校长、教练、教师等,我需要限制访问权限,只允许人们编辑特定范围。以编程方式保护范围将是最简单的解决方案,但不幸的是,目前使用Google Apps脚本无法做到这一点

去年,当我这样做时,我创建了一个包含所有受保护范围的模板。然后我复制了100多次模板,保留了所有的范围保护。然后,我以编程方式添加用户,并为他们提供仅限注释的访问权限。然后,我将他们的访问权限更改为“可以编辑”,并手动授予他们仅编辑所需范围的权限。这个过程只允许他们编辑我手动更改的范围,而保留他们可以对我想要保护的其他范围进行注释访问。虽然枯燥乏味,但效果很好,因为对于大多数用户来说,受保护的范围比可编辑的范围多得多……因此,保留作为其他范围的注释是很方便的

今年我也在尝试做同样的事情。我已经保护了电子表格上的范围,并添加了具有“可以评论”权限的用户。但是,当我将用户更改为可以编辑访问时,他们可以编辑所有内容,包括受保护的范围!这似乎是默认功能。现在我必须进入每个范围并删除编辑权限。去年,对于每一个范围,我只需要为少数用户授予编辑权限……如果我找不到合适的工作,这将非常耗时

有人知道这方面的解决方法吗?这是谷歌电子表格2.0的产品吗?去年我用的是谷歌电子表格的旧版本

谢谢。

因为,现在可以使用谷歌应用程序脚本编辑和制作工作表。 请注意,保护级别仅适用于

示例来自:


我建议对同一文件夹中的所有文件进行循环。然后检查并以编程方式设置每个文档的范围、保护和权限。如果有帮助的话,我可以添加一些代码。是的,如果你可以添加一些代码,那就太好了。我知道如何设置某些页面的保护,但我认为在谷歌应用程序脚本中不可能以编程方式保护范围。。。
// Protect range A1:B10, then remove all other users from the list of editors.
 var ss = SpreadsheetApp.getActive();
 var range = ss.getRange('A1:B10');
 var protection = range.protect().setDescription('Sample protected range');

 // Ensure the current user is an editor before removing others. Otherwise, if the user's edit
 // permission comes from a group, the script will throw an exception upon removing the group.
 var me = Session.getEffectiveUser();
 protection.addEditor(me);
 protection.removeEditors(protection.getEditors());
 if (protection.canDomainEdit()) {
   protection.setDomainEdit(false);
 }