是否可以为多个电子表格使用一个脚本



>我有一个主电子表格和许多副本。 此主电子表格使用一些脚本。

是否可以将此主电子表格

的所有副本链接到与主电子表格中的脚本相同的脚本?

目的:

  • 副本会自动使用主电子表格中脚本中的更改
  • 又名:低维护

Amleczko 是对的:您应该在 Google Apps 脚本中使用新的库功能。

但是,截至今天,您将无法完全按照自己的要求进行操作(对多个电子表格使用相同的脚本(。您可以做的是保存脚本的一个版本(文件>管理版本...(,以便创建库。然后,在其他电子表格(资源>管理库...(中导入此库。打开"开发模式",这样对库所做的每个更改都会立即在使用此库的电子表格中生效。否则,您必须为每次更改保存库的新版本,并在使用它的每个电子表格中手动更新库的版本号。

问题是,您需要使用库在每个电子表格中编写一个脚本,其骨架函数如下所示:

function doSomething(){
   myLibrary.doSomething();
} 

最好的方法是发布为附加组件,然后安装附加组件,它将出现在您打开的每个电子表格中。 您可以作为私有发布,只有您自己才能看到。

我认为这已经改变了。根据2012年5月22日开始的第40期,存在这种可能性。请检查:

  • https://developers.google.com/apps-script/guide_libraries
  • https://developers.google.com/apps-script/guide_versions
  • http://googleappsdeveloper.blogspot.it/2012/05/introducing-versions-and-libraries-in.html

你这样想是不可能的。至少,现在还没有(见问题40(。

但是,根据您的脚本使用情况,您可以"以困难的方式"连接它们,甚至更好的是,只使用一个脚本。主电子表格上的脚本可以打开其他电子表格文件并"远程"完成其工作。不需要将脚本托管在电子表格上即可与之交互(在其上读取/写入(。如果您要使用电子表格事件触发器(即打开、编辑和表单提交(,则只需要在电子表格上托管脚本。

也许您可以为主工作表上的脚本开发一个漂亮的 UI,并将其发布为服务。然后,副本上只有一个链接,可以在不同的浏览器选项卡上访问相同的UI。将参数添加到链接中,脚本 UI 甚至可以适应"触发"它的特定电子表格。

好吧,这就是我现在能想象的。但是,不幸的是,有些用例不适合这个很好的"解决方法"。对于那些,人们只能为第 40 期加星标(进行投票并跟踪更新(,并希望它尽快开发。

在这种情况下,我实施的解决方案是拥有一个Google网站,其中嵌入了主脚本,并且还嵌入了电子表格

然后,脚本引用专用电子表格,查找 Google 网站页面的名称,在主电子表格中查找并获取嵌入在页面中的电子表格的 ID。

在使用自动生成电子表格的脚本时,我已经解决了这个问题。

通常,我会使用名为"Info"的脚本向任何电子表格添加工作表。我将使用它来存储对脚本很重要的信息。在我的自动生成更多电子表格的脚本中,我跟踪所创建工作表的 ID。这样,我可以快速调用所有"链接"工作表,并使用相同的脚本与它们进行交互。甚至可能值得将脚本写在一张纸上,并将其与您的主表或其子表完全分开。

看看这个功能,它可能会给你一些想法。

SpreadsheetApp.openById(id(

最新更新