如果您访问Google Apps Script Dashboard,您可以创建一个独立的脚本。将代码粘贴到那里后,如果您转到File > Manage Versions,您将看到输入描述的提示和一个显示Save new version 的按钮。输入您想要的描述后,继续点击按钮。
现在您需要复制脚本 url 的这一部分(即您的脚本 ID)
在所需的电子表格中,在脚本编辑器中,选择 Resources > Libraries 并将您的链接输入此框中
添加后,选择你的版本(我没有输入这个的描述,但是如果你在制作项目版本时输入了描述,它会出现在版本号旁边)。
点击保存,现在您可以像这样访问您创建的库中的函数
如果您在输入这样的句点后提出建议,您就会知道它工作正常
编辑
我刚刚意识到您提到它是一个网络应用程序,在这种情况下,您可以通过不同的方式来执行此操作 - 您仍然希望它作为独立脚本,但您可以做的是根据访问 Web 应用程序的用户。我个人没有使用 OAuth 的经验,但是我已经根据之前的下拉菜单将单个网络应用程序连接到不同的工作表。
我是如何做到的:
我首先在 html 中设置下拉列表的值以包含我想要发送到的工作表 ID(更改了一些内容,因为这是来自公司代码)
<option value="1THvC8JhF-LxZOYBGRaIvpZpYoNtyfOuteWNPndtrCQo@[Title of the page]">[Option to select]</option>
然后在 Javascript 中,我将 url 设置为在重定向到下一页时包含标题和 ID
function boxVal(url){
var ID = document.getElementById('[ID of select]').value;
var strArr = ID.split('@');
ID = strArr[0];
var title = strArr[1];
if(ID === "Select Your Department"){
url += "?page=Department Select&title=" + title;
}
else{
url += "?page=Main Page&title=" + title + "&id=" + ID;
}
document.getElementById('link').href = url;
document.getElementById('link').click();
}
(如果您还不知道我如何拥有多个页面,请参阅this post)
然后在 doGet() 函数中,我抓取了传递给 URL 的 id 参数,然后我可以将其传递给 javascript 中的函数
var qString = e.parameter['id'];
uProps('SPREADSHEET_ID', qString);
uProps 在哪里
function uProps(prop, propVal){
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperty(prop ,propVal);
}
这会创建一个可以在页面更改后引用的用户属性。
然后回到连接到html文件的javascript我用这个将用户属性传递给其他函数
function passFunction(receiver){
switch(receiver) {
case 1: google.script.run.withSuccessHandler(add).getProps('SPREADSHEET_ID'); break;
case 2: google.script.run.withSuccessHandler(getTopInterrupt).getProps('SPREADSHEET_ID'); break;
}
}
passFunction 从 html 中的 onclick 执行
这是 Code.gs 文件中的 .getProps 函数(我拥有的包含 doGet() 的函数)
function getProps(prop){
return PropertiesService.getUserProperties().getProperty(prop);
}
我认为,如果您可以让它与您的 OAuth 系统一起使用,那么这将是最好的选择,因为您可以拥有一个为所有用户提供服务的 Web 应用程序版本,而无需在其他工作表。
希望对你有帮助