如何在谷歌脚本运行期间设置表格保护

时间:2013-05-20 04:33:36

标签: google-apps-script google-sheets

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

1 个答案:

答案 0 :(得分:0)

我只是回复,因为我发现你还没有其他任何人,而且我对这个问题进行了修改而没有成功。虽然在我的情况下,目标有些不同,因为我需要用户在运行菜单驱动的脚本时执行代码。由于您只需要自己修改保护,因此您可能会发现这对您有用。

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

  • getEditors / removeEditor / addEditor
  • getViewers / addViewers

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;
}