Google表格如何防止页面重命名?

时间:2014-05-13 18:20:45

标签: google-apps-script google-sheets

我知道我可以将整个页面设置为受保护,但有没有办法让页面的名称受到保护?

我有一个依赖于工作表名称的应用程序脚本,所以我不希望任何人能够重命名它,但其他人仍然需要能够对工作表上的其他所有内容进行编辑访问。

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为不可能。

但是在您的脚本中,请改用sheet-id,这是唯一且不可更改的,除非删除并重新创建工作表。在这种情况下,你可以回退到它的名字,或者只是可以理解的失败。像这样:

function getSheetById(id) {
  var sheets = SpreadsheetApp.getActive().getSheets();
  for( var i in sheets )
    if( sheets[i].getSheetId() == id )
      return sheets[i];
  throw new Error('Sheet with id "'+id+'" not found.');
}

然后参数化并使用此getSheetById函数,而不是使用它们的名称。您可以通过选择它并查看浏览器的位置栏来查看工作表ID。这是#gid =' #gid ='部分。您可以使用以下代码在代码中确认:

function logId() {
  Logger.log(SpreadsheetApp.getActive().getSheetByName('Sheet1').getSheetId());
  //click View > Logs
}