当前位置: 首页 > 知识库问答 >
问题:

Google工作表:通过脚本在受保护的工作表和范围中添加编辑器

谭桐
2023-03-14

我可以问一下,我如何通过脚本添加编辑器到受保护的工作表和范围中的权限?我尝试使用protection.addeditors();,它需要枚举所有的电子邮件地址,对吗?但是,有没有一个简单的或另一个方法让我做到这一点呢?如果没有别的办法,我有90张纸要一张一张修改。每个文件的电子邮件地址不相同。

我正在考虑在Google Drive中自动获得与人和组共享选项中的所有编辑器。这有可能做到吗?

共有1个答案

方子安
2023-03-14

您希望以编程方式检索一系列电子表格的编辑器列表,以便将它们添加为受保护的工作表或区域的编辑器(不确定为什么要添加此保护,因为默认情况下,文件编辑器将是唯一能够编辑电子表格的编辑器,但可以根据您的需要进行编辑)。

您可以通过driveApp.getFileById(id)获取该文件,并通过File.getEditors()获取每个文件的编辑器列表来检索该列表。

function addEditors() {
  const spreadsheetIDs = ["spreadsheet_ID_1", "spreadsheet_ID_2", ... etc.];
  spreadsheetIDs.forEach(spreadsheetID => {
    const file = DriveApp.getFileById(spreadsheetID);
    const editors = file.getEditors();
    const spreadsheet = SpreadsheetApp.openById(spreadsheetID);
    spreadsheet.addEditors(editors);
  });
}
 类似资料:
  • 我一直在寻找一个工作表保护问题的解决方案,我有一个工作表,其中包括从顶部的一些字段将数据写入下面的工作表的自动脚本。我希望用户能够在顶部的字段中提供数据,然后运行脚本添加下面的数据。如果启用了保护,则用于添加数据的脚本对工作表的所有者来说可以正常工作,但对于任何具有编辑权限的用户来说都无法正常工作,因为脚本无法清除将数据写入工作表底部的保护。 https://developers.googlebl

  • 我有一个电子表格从谷歌表单收集我的表单回复。 附在这张纸上的是一个脚本,它将每一行都拉出,进行一些计算,并将结果放入另一张纸中。我不是每次都复制整张表,而是用下面的代码拉两张表的增量: 问题是,我还将过滤器应用于接收工作表,并且每当我插入任何新数据时,过滤器范围都不会更新。 有什么办法可以让我绕过这件事吗?作为上面更新函数的一部分,我能否以编程方式更新过滤器范围?

  • 您好,我正在为D制作一张计划表 我正在尝试编写一个脚本,它将自动隐藏PlayerSheet中所有空的“initiative”单元格。我已经成功地编写了这个脚本,但是我希望它在我编辑MainSheet时触发。因为工作表中的所有日期都来自于使用IMPORTRANGE,所以我无法使用on edit触发器,因为PlayerSheet从未被编辑过。 每当我编辑MainSheet时,是否可以让位于Player

  • 有人能帮我把脚本布局转换成实际的功能代码吗?我有一般的编码知识,但我不知道正确的语法。 基本上,我需要的是一个脚本,当提交表单条目时,它会在所有工作表/选项卡之间循环。表单包含提交表单的人的姓名(字符串)、开始日期、结束日期,最后是注释字段(字符串)。 我需要脚本来遍历每个工作表的第5行,并查找在第一个表单字段中输入的字符串(提交表单的人的姓名)。如果它找到了该名称,它应该将与该名称对应的列保存到

  • 简介:我想通过使用嵌入的Google脚本中生成的数组来更改Google sheets EmbeddedChart中的数据,而无需先将数据倒入单元格。 Long:我有一个绑定脚本,可以更新先前存在的电子表格。我修改了js中的数据,并希望更改一个嵌入式图表以使用生成的数据数组,而不将数据放在表中。从技术上讲,我不在乎它是一个嵌入的图表,我只想用一个图表制作一个摘要页面,而不想用额外的表格污染文档。不希

  • 因此,我编写了一个gs函数,当有人在工作表中插入新行时,它会发送一封电子邮件。当用户手动插入数据时,它可以正常工作,但是该工作表也被通过API插入新行的服务帐户使用,在这种情况下不会触发编辑事件。 这是我正在使用的触发器 我作为表单的所有者创建了脚本和触发器,但这并没有解决任何问题,所以我没有主意了。