19

我有一个主电子表格和一些副本。这个主电子表格使用了一些脚本。

是否可以将此主电子表格的所有副本链接到与主电子表格中相同的脚本?

客观的:

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

6 回答 6

18

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

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

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

function doSomething(){
   myLibrary.doSomething();
} 
于 2012-09-06T16:53:58.400 回答
3

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

于 2018-05-30T21:21:13.207 回答
2

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

于 2012-06-08T09:12:47.563 回答
1

你想的这种方式是不可能的。至少,现在还没有(见第 40 期)。

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

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

嗯,这就是我现在所能想象的。但是,不幸的是,有些用例不适合这种好的“解决方法”。对于那些人,只能给第 40 期加注星标(进行投票和跟踪更新)并希望它尽快开发。

于 2012-05-09T01:53:00.580 回答
0

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

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

于 2012-05-11T07:00:49.990 回答
0

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

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

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

SpreadsheetApp.openById(id)

于 2012-05-14T01:23:31.917 回答