将脚本插入多个Google Spreadsheets

时间:2013-02-20 13:20:04

标签: google-apps-script google-sheets

我是一名业余编码员 - 我真的只做了一些事情让我的生活更轻松。我设置了Google表单和电子表格,用于跟踪我学校不同年级的学科问题。我写了一个简短的脚本,通过电子邮件通知相关人员任何提交,并且可以过滤和创建有关所选学习者的报告。

因为我做DIY编码(英语和法语老师,所以我没有学习编程),我经常想出一些应该从一开始就很明显的改进。我真的不想将脚本改进复制并粘贴到每个电子表格的脚本编辑器中。我已将此脚本复制为Google云端硬盘中的独立文件,但我无法将其插入任何电子表格中,因为该图库只能访问已发布的脚本/应用。有没有解决的办法?我已经看过提到使用库,但我甚至不知道从哪里开始。您可以在Google云端硬盘中创建一个独立的脚本但实际上并没有使用它,这感觉有点傻。

任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:6)

最初这是一个问题,谷歌的解决方案是“图书馆”功能。

所以你想要

  1. 您必须保存项目的版本。文件>管理版本......
  2. 然后进入文件>项目属性并复制项目密钥。
  3. 然后在所有其他电子表格中,您必须进入脚本编辑器并转到资源>管理图书馆。然后从上面粘贴项目密钥并将其添加到该电子表格脚本。
  4. 没有一种自动化的方法可以实现这一目标。要在任何电子表格上运行脚本,您必须进入每个电子表格的脚本编辑器。

    Source

答案 1 :(得分:4)

另一个答案(Phil Bozak)一点也不差,因为它概述了如何建立一个图书馆,但我担心这不足以让你真正“走上正轨”。 / p>

如文档中所述 您可以像使用默认服务一样使用包含的库 ,这意味着库函数不能直接作为脚本使用,但应该而是被视为脚本函数可以调用的工具箱。

因此,在每个电子表格中,您应该拥有一些实际上“调用”图书馆服务的基本功能,后者负责实际操作。

让我举一个简单的例子:假设您想要更改工作表的背景颜色,您在yourLibrary中有一个函数可以更改当前工作表的颜色(yourLibrary是名称你给了库),这个函数叫做changeColor

现在,在您的脚本中,您可以使用yourLibrary.changeColor,但如果您希望在特殊操作(onEdit,onOpen ...或在某个操作中执行),则此“服务调用”必须存在于电子表格的脚本本身中菜单调用)并且必须在同一个脚本编辑器的资源中引用该库。

所有这些都解释了库功能非常有用且非常简单,但您仍然需要在每个电子表格中使用“骨架脚本”,您将不得不考虑如何使用调用'<的基本结构重建脚本。 strong> 可更新的部分,用于执行真正的stuf '。

不是那么简单但是(在完成之后)相当舒服; - )

希望这很清楚。

答案 2 :(得分:2)

您可能还想考虑您的个人电子表格是否需要自己的容器脚本。为什么不能单独阅读并在所有工作表上运行报告?

答案 3 :(得分:0)

另一种解决方案可能会对您有所帮助,您可以在云端硬盘中创建脚本应用文件并将所需的所有电子表格ID放入数组并使用循环技巧运行脚本