如何将Google Apps脚本作为文件导出/导入到新电子表格中?


13

我担心这可能会有一个明显的答案,但是我一直对此深思熟虑,找不到它!

创建新电子表格时,我们可以轻松地其中创建脚本。我喜欢称它为。但是,当我创建一个更新的电子表格时,我找不到找到的好方法!

我只希望保存文件并随意重用,而无需复制,粘贴和重命名。我在这里的目标是共享脚本,并且打算使用它的人都不是程序员。这必须非常简单!

有什么见解吗?

Answers:


9

实际上,“图书馆解决方案”是您最好的选择。它虽然听起来并不复杂,但是却需要一点时间的工作。

首先,您在一个电子表格中创建脚本(我们称其为主电子表格)。

通过在脚本编辑器中单击文件→管理版本来保存脚本的版本,并为您的版本命名:

“管理版本”对话框的屏幕截图

关闭此对话框,然后转到文件→项目属性。在这里,找到Project键,它是字符的接缝随机组合:

“项目属性”对话框的屏幕截图

复制或记下项目密钥。

创建新的电子表格并要重用脚本后,请转到脚本编辑器,然后单击资源→库(如果尚未保存新脚本,则系统现在会要求您这样做)。

在“ 查找库”字段中,粘贴项目中的项目密钥(1),然后单击“ 选择”(2):

“管理库”对话框的屏幕快照

这将使用您的脚本填充列表。给它起一个更友好的名称(3),然后打开“ 开发模式”(4)(这将允许您调试该库)。选择脚本的最新版本(5)。

现在,您可以在新脚本中使用包含的库中的函数。只需在函数名称之前添加您在(3)中指定的名称,这样,如果您将库标识为MyLibrary,并且库具有myFunction要调用的函数,则可以调用MyLibrary.myFunction()

要更新库时,只需这样做,然后保存文件。任何依赖于库的脚本都将看到更新的库代码。

我只是将此练习作为概念验证:

  • 设置一个具有以下功能的库: function myFunction() {return "Foo"}
  • 将其包含在另一个脚本中,将库标识为 MyLibrary
  • 用调用库函数 Logger.log(MyLibrary.myFunction)
  • 日志显示 Foo
  • 编辑了库: function myFunction() {return "Bar"}
  • 重新运行包含脚本,现在显示日志 Bar

因此,在初始设置后,这确实非常简单。有关真实示例,请参见我的Google云端硬盘上的此文件夹

另请参阅有关库Google文档


2
我想我的问题还不够清楚(我有一个链接说明如何使用这些库,我已经阅读了所有链接以及更多内容。我想我已经阅读了所有文档),并且我省略了关键信息,对此表示抱歉。我知道这样做并不是“ 那么复杂 ”,但我的主要目标是共享脚本,这对我要与之共享的对象来说足够复杂。简单必须简单。我将编辑问题。但是感谢所有的考虑!另外,我在您的文件夹中看不到任何内容。仅2个空文件。即使打开它们。
cregox 2014年

啊,我完全错过了您与@JacobJanTuinstra有关如何创建库的出色答案的链接。我的错。毫无疑问,您已经阅读了文档。但是,我不确定我是否理解“ 分享”的意思。您要与其他用户共享脚本吗?
Vidar S. Ramdal 2014年

至于我的文件夹中的文件,是的,它们似乎是空白。但这是因为电子表格空白的-除脚本外,它们什么都没有。为了使用我的电子表格,您必须单击上面的链接,单击一个(空白)文件,然后单击“ 打开”,然后单击“ 文件”->“制作副本”,以便您自己的Google云端硬盘中有一个副本。这也应随附件脚本文件一起复制。
Vidar S. Ramdal 2014年

好的,制作完副本后,我终于可以看到脚本了。仍然没有什么简单的。是的,与其他用户分享。复制和粘贴效果很好,很简单,但是太怪异了。我仍然必须粘贴到文件中,其他用户可以从中复制!我几乎不明白为什么我们不能使用文件...
cregox

2

简短答案

将您的脚本作为附件发布。请记住,您可以将其设为公开,不公开或私有,并与Google网上论坛共享。

说明

脚本库由2014年添加的附加组件代替。

为了发布附加组件,您应该支付5美元的费用才能将附加组件发布到Chrome网上应用店。如果您将插件设为公开,则在公开发布之前应先经过Google的审查,但是如果您将其私有化(仅限于Google网上论坛),则几分钟后即可使用。

发布加载项的另一种方法是使用加载项测试功能,但这有一些限制,例如不可能“测试”触发器,这取决于您的脚本是否可能是一个重要的限制。

使用附加组件比使用库更好,这是因为库可能会降低电子表格的运行速度,但特别是因为从最终用户的角度来看,使用add和使用它比添加添加脚本项目更容易,添加调用库并添加库本身所需的代码。

附加组件创建者的一个优势是,附加组件用户将无法从附加组件本身查看附加代码。

另一方面,它需要一些具有特定格式和大小要求的图像,对于某些用例而言,这些图像可能被认为过于复杂,我们最终可以考虑对脚本进行复制/粘贴或对电子表格(文档/表格)进行复制/ presentation)是这些用例的直接解决方案。

参考文献


2

您应该尝试谈论的Google Clasp

创建的脚本项目绑定到的父文件的驱动器ID

没尝试过,但是看起来有一些用于检索项目脚本代码,创建和更新的命令:

  • 提取:从提供的或保存的脚本ID中提取项目。使用Apps Script项目更新本地文件
  • 推送:强制将所有本地文件写入脚本管理服务器
  • 创建:创建一个新的脚本项目(带有可选的项目父ID。创建的脚本项目绑定到的父文件的驱动器ID)

2
感谢您的贡献,马森!我觉得它很有趣,即使我很快就无法对其进行测试。:)在任何情况下,您能否进一步详细说明如何使用表扣解决问题?最好保持答案独立,以备将来参考,以防链接中断或发生重大更改。
cregox

1

半路是从项目中下载文件。

解决方案1

我找到了实现此目的的工具:

http://googleappsscriptexport.trototype.com/ ,作者kerem tiryaki

  • 您必须授予访问权限
  • 要查找脚本,您必须复制脚本的键:

在此处输入图片说明

坏处

GoogleAppsScriptExporterForAll现在可以访问您的Google帐户(必须手动删除)

解决方案#2

我还使用此插件来集成Git-Hub和Google表格脚本:https : //chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo

安装此插件后,您需要:

  1. 登录并将代码推送到GitHub(按钮将显示在编辑器中)
  2. 如果需要,可以从GitHub下载代码。
  3. 您还可以从GitHub中提取项目(普通用户不会这样做)。

坏处

用户仍然必须打开脚本编辑器并复制代码。

优点

  1. Quique实现。不必玩附加组件
  2. 用户易于复制一个脚本,而不是多个文件。

下一步

对我来说,下一步是:

  1. 将我的*.js文件合并为单行文件。成功使用https://jscompress.com/ =)
  2. 与用户共享一个文件(将脚本发布到GitHub或直接通过电子邮件发送给他们)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.