Google apps script 将脚本插入多个Google电子表格

Google apps script 将脚本插入多个Google电子表格,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我是一名业余程序员——我真的只做了几件事来让我的生活更轻松。我建立了谷歌表格和电子表格来跟踪学校不同年级的纪律问题。我写了一个简短的脚本,通过电子邮件通知相关人员任何提交,并可以筛选和创建有关选定学习者的报告 因为我做DIY编码(英语和法语老师,所以我没有学习编程),我经常会想出一些从一开始就应该很明显的改进。我真的不想将脚本改进复制并粘贴到每个电子表格的脚本编辑器中。我已将此脚本作为独立文件复制到Google Drive中,但我无法将其插入任何电子表格中,因为gallery只能访问已发布的脚本

我是一名业余程序员——我真的只做了几件事来让我的生活更轻松。我建立了谷歌表格和电子表格来跟踪学校不同年级的纪律问题。我写了一个简短的脚本,通过电子邮件通知相关人员任何提交,并可以筛选和创建有关选定学习者的报告

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


任何帮助都将不胜感激。

不久前,这一问题最初是作为一个问题提出的,谷歌的解决方案是“库”功能

所以你会想

  • 您必须保存项目的一个版本。文件>管理版本
  • 然后进入文件>项目属性并复制项目密钥
  • 然后在所有其他电子表格中,您必须进入脚本编辑器,进入“资源”>“管理库”。然后从上面粘贴项目键并将其添加到该电子表格脚本中
  • 没有一种自动化的方法来实现这一点。为了在任何电子表格上运行脚本,必须进入每个电子表格的脚本编辑器

    另一个答案(Phil Bozak)一点也不坏,因为它提供了如何构建库的一般概述,但我担心它不足以让您真正“走上正确的轨道”

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

    因此,在每个电子表格中,您都应该有一些基本函数,这些函数实际上“调用”了库服务,后者负责实际操作

    让我举一个简单的例子:假设您想要更改工作表的背景颜色,您在
    yourLibrary
    中有一个函数,该函数更改当前工作表的颜色(
    yourLibrary
    是您给库的名称),该函数将被称为
    changeColor

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

    所有这些都是为了说明库功能非常有用并且非常简单,但是在每个电子表格中仍然需要一个“骨架脚本”,并且您必须考虑如何用一个调用“可更新部分的基本结构来重建脚本,该部分执行真正的stuf

    不那么简单,但(完成后)很舒服;-)


    希望这足够清楚。

    您可能还需要考虑您的单个电子表格是否需要自己的容器脚本。为什么你的单机版不能读取并运行所有工作表上的报告

    另一个解决方案可能会对您有所帮助,您可以在驱动器中创建脚本应用程序文件,并将所需的所有电子表格ID放入数组,然后使用循环技巧运行脚本

    谢谢您的输入。在看了一下四周并听从你的建议后,我想我能破解它。如果我遇到困难,我会回来的!它就像一个符咒。感觉有点慢,但这可能是因为我的工作上网速度慢。我打开了开发人员模式,但我希望对我的库所做的更改会立即显示在我的电子表格中,而不必保存新版本。我会做更多的研究——可能遗漏了什么。干杯看一看,我想可能会有帮助。并且:很高兴它对您很有效;-)谢谢你的帮助。我要去图书馆看看我能做些什么。