如何使用脚本制作 Google sheet 模板,在每个实例创建时用户不需要授权脚本访问权限?
How to make a Google sheet template with a script where at each instance creation the user do not need to authorize the script access rights?
我有一个 google 工作表,其中有一个调用脚本的菜单。该脚本单独保存为带有保存版本的库。
此 Sheet 作为 Google 域模板保存在共享驱动器上。用户每周创建10张左右,每次都授权脚本。
哪些解决方案可用于避免此重复过程。附加组件似乎不是正确的解决方案,因为脚本必须仅适用于此电子表格
function onEdit(e) {
const rangeName="A2";
var ass=SpreadsheetApp.getActiveSpreadsheet();
var as=ass.getActiveSheet();
var adresse=as.getActiveRange().getA1Notation();
Logger.log(JSON.stringify(e));
if (adresse===rangeName) {
SpreadsheetApp.getActiveSpreadsheet().rename(as.getRange(rangeName).getValue());
ass.toast("DONE!");
}
- 你有一个脚本应该适用于从特定模板制作的所有副本(多个用户制作副本)。
- 您希望避免用户必须为他们创建的每个模板副本重新授权脚本。
如果这是正确的,我认为您最好的选择是将脚本部署为附加组件,并为域中的所有用户安装该附加组件。工作流程如下:
- 创建一个独立的 Apps 脚本项目并将其与 standard GCP project.
相关联
- 在函数的开头,在某个单元格中查找值,其目的是将文件标识为模板的副本。例如,像这样:
function yourFunction() {
var templateIdentifier = SpreadsheetApp.getActive().getSheetByName("Settings").getRange("A1").getValue();
if (templateIdentifier = "12345") { // Check that file is copy of template "12345"
// Execute the desired script actions
}
}
模板及其所有副本都应具有此值,因此您可能应该 protect this cell 来自原始模板中的版本(所有副本都将保留此保护)。就个人而言,我还会将此单元格放在隐藏的 sheet 中,这样用户就看不到它了。
Test that the add-on is working correctly, and publish it。按照[本指南].
- 插件发布后,按照 this.
为域中的所有用户安装它
参考:
我有一个 google 工作表,其中有一个调用脚本的菜单。该脚本单独保存为带有保存版本的库。 此 Sheet 作为 Google 域模板保存在共享驱动器上。用户每周创建10张左右,每次都授权脚本。
哪些解决方案可用于避免此重复过程。附加组件似乎不是正确的解决方案,因为脚本必须仅适用于此电子表格
function onEdit(e) {
const rangeName="A2";
var ass=SpreadsheetApp.getActiveSpreadsheet();
var as=ass.getActiveSheet();
var adresse=as.getActiveRange().getA1Notation();
Logger.log(JSON.stringify(e));
if (adresse===rangeName) {
SpreadsheetApp.getActiveSpreadsheet().rename(as.getRange(rangeName).getValue());
ass.toast("DONE!");
}
- 你有一个脚本应该适用于从特定模板制作的所有副本(多个用户制作副本)。
- 您希望避免用户必须为他们创建的每个模板副本重新授权脚本。
如果这是正确的,我认为您最好的选择是将脚本部署为附加组件,并为域中的所有用户安装该附加组件。工作流程如下:
- 创建一个独立的 Apps 脚本项目并将其与 standard GCP project. 相关联
- 在函数的开头,在某个单元格中查找值,其目的是将文件标识为模板的副本。例如,像这样:
function yourFunction() {
var templateIdentifier = SpreadsheetApp.getActive().getSheetByName("Settings").getRange("A1").getValue();
if (templateIdentifier = "12345") { // Check that file is copy of template "12345"
// Execute the desired script actions
}
}
模板及其所有副本都应具有此值,因此您可能应该 protect this cell 来自原始模板中的版本(所有副本都将保留此保护)。就个人而言,我还会将此单元格放在隐藏的 sheet 中,这样用户就看不到它了。
Test that the add-on is working correctly, and publish it。按照[本指南].
- 插件发布后,按照 this. 为域中的所有用户安装它