在几个* .gs文件中组织电子表格代码 - 甚至可能吗?

时间:2012-07-30 16:31:33

标签: google-apps-script

我正在尝试在几个脚本文件中组织我的电子表格代码。在脚本编辑器中,我可以根据需要创建尽可能多的* .gs文件,但我无法弄清楚如何访问将在另一个脚本中定义的代码。

我希望实现的简单示例:

Code.gs:

function onEdit(){
   myFunctionFromLibrary_gs();
} 

Library.gs:

function myFunctionFromLibrary_gs(){
   Browser.msgBox("hi there");
}

onEdit()显然是由Trigger调用的。 如果不进行修改,将导致运行时错误,说明

  

myFunctionFromLibrary_gs TypeError:不是函数,未定义。

那么我怎样才能做到这一点,或者目前不支持?

提前帮助你。

3 个答案:

答案 0 :(得分:11)

是的,这是可能的。

  
      
  1. 您不仅限于单个服务器Code.gs文件。您可以跨多个文件传播服务器代码,以便于开发。 所有服务器文件都加载到同一个全局命名空间 ,因此如果要提供安全封装,请使用JavaScript类。
  2.   

参考:Google Documentation - features and limitations

答案 1 :(得分:7)

我不知道_gs后缀对谷歌来说意味着什么,但如果没有它(参见下面的代码),代码就可以了。

file1.gs:

function onEdit(){
   myFunctionFromLibrary();
}

file2.gs

function myFunctionFromLibrary(){
   Browser.msgBox("hi there");
}

答案 2 :(得分:2)

我知道这是一个老问题,但我发现它正在寻找类似的任务,并且碰巧在我的同一搜索中找到答案。 来自https://developers.google.com/apps-script/guide_libraries#writingLibrary的文档:

  

如果您希望脚本的一个或多个方法对库用户不可见(也不可用),则可以使用下划线结束方法的名称。例如,myPrivateMethod _()。

虽然你的函数在下划线中不是END,但它可能在其他地方具有特殊意义,或者_gs后缀也可能具有特殊含义(特别是在给出相同的文件名后缀的情况下)。