2

这个问题是关于谷歌电子表格的。我有一个与多人共享的电子表格。我也在使用脚本来更新工作表内容。我的问题是当我运行脚本时,有没有办法保护工作表免受他人编辑。脚本完成后,可以再次将编辑权限授予用户吗?

4

1 回答 1

0

我只是回复,因为我看到你还没有其他人,而且我已经修补了这个问题但没有成功。尽管在我的情况下,目标有所不同,因为我需要用户在运行菜单驱动的脚本时执行我的代码。由于您只需要自己修改保护,那么您可能会发现这对您有用。

无论如何,我可以预见到用户在运行代码时可能处于中间编辑状态的情况,这可能会让他们感到沮丧!您可能想要做的是掌握用户对象和相关方法以管理它们。现在我看不出如果不把他们踢出去你会怎么做(同样的结果),但也许其他人会提出一些想法。查看电子表格类的以下内容:

  • getEditors / removeEditor / addEditor
  • 获取查看器/添加查看器

https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet

以下是我制作的一个功能,它对我(所有者)有用,但不适用于用户 - 希望它有所帮助:

//Target = string name of sheet to change permissions for
//ProtectOn = boolean: TRUE = turn on protection
//function returns boolean representing previous permissions setting (for loops/verification)

function SheetProtectionSet(Target, ProtectOn) {
  var g_wkbActive = SpreadsheetApp.getActiveSpreadsheet();
  var wksTarget = g_wkbActive.getSheetByName(Target);
  var permissions = wksTarget.getSheetProtection();
  var cur_protection = permissions.isProtected();

  permissions.setProtected(ProtectOn);
  wksTarget.setSheetProtection(permissions);
  return cur_protection;
}
于 2013-06-17T18:38:24.560 回答