需要 Google 表格的 Apps 脚本来删除除所有者之外的所有访问权限

Need an Apps Script for Google Sheets to remove all access except the owner

我的公司与一家姊妹公司分拆,我们需要删除大约 20 个文件的访问权限,每个文件的权限都超过 100 个。经过一些研究,似乎唯一的解决方案是编写一个我对 atm 零经验的应用程序脚本。

我试过将 sheets 文件移动到一个有限的文件夹,但文件上已有的权限刚刚转移。

删除文件并重新上传不是一种选择,因为导入范围和查询的链接需要保持不变。

我唯一没有尝试过的是应用程序脚本,因为我不知道如何使用它们。我找到了一些模糊相似的解决方案,但我无法将它们应用到我的案例中。此外,由于公司隐私,我无法共享该文件,唯一相关的是与它共享并可以访问该文件的人数。

TLDR: 我需要一个脚本来删除对当前 sheet 的所有访问权限(编辑、查看、所有内容),所有者除外。或者,一个执行相同但针对特定文件夹中的所有文件的脚本,因此我们可以将所有文件转储到那里并重置所有文件的权限。

尝试这样的事情:

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var editors = ss.getEditors();
  var i = editors.length
  while (i--) ss.removeEditor(editors[i]);

  var viewers = ss.getViewers();
  var i = viewers.length
  while (i--) ss.removeViewer(viewers[i]);
}

或:

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.getEditors().forEach(e => ss.removeEditor(e));
  ss.getViewers().forEach(v => ss.removeViewer(v));
}