gpt4 book ai didi

google-sheets - 防止用户在共享的 Google 电子表格中创建新工作表

转载 作者:行者123 更新时间:2023-12-04 18:03:43 24 4
gpt4 key购买 nike

我创建了一个电子表格,其中除单个单元格外,所有工作表都受到保护,无法编辑,用户应该在其中输入一个搜索值来过滤工作表。我共享了电子表格并启用了编辑以允许这样做,但这也使用户能够创建新的工作表,我想阻止这种情况。

也许我使用的不是实现我想要的最佳方式,所以欢迎提出建议。我看到有人建议在类似用例中使用表单,但我不知道如何将他们的调查功能应用于我的需求。

编辑:这是共享电子表格:https://docs.google.com/spreadsheets/d/1C4mrBWJxPLrFQ4bp82UA2ICOr1e6ER47wF7YuElyoZg/edit?usp=sharing

最佳答案

您可以使用脚本删除每个新创建的(不是由所有者创建的)工作表。这是此类脚本的示例:

// Deletes any tab named "SheetN" where N is a number 
function DeleteNewSheets() {
var newSheetName = /^Sheet[\d]+$/
var ssdoc = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ssdoc.getSheets();

// is the change made by the owner ?
if (Session.getActiveUser().getEmail() == ssdoc.getOwner().getEmail()) {
return;
}
// if not the owner, delete all unauthorised sheets
for (var i = 0; i < sheets.length; i++) {
if (newSheetName.test(sheets[i].getName())) {
ssdoc.deleteSheet(sheets[i])
}
}
}

然后设置一个触发器来运行这个函数 DeleteNewSheets更改 (如工作表创建)发生。
注意:如果英语不是文档语言,您应该更改正则表达式 /^Sheet[\d]+$/ ,例如法语应该是 /^Feuille [\d]+$/ .

关于google-sheets - 防止用户在共享的 Google 电子表格中创建新工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30872932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com