以编程方式编辑Google云端硬盘文档中的脚本

时间:2013-08-07 11:24:54

标签: google-apps-script

我有一个Google云端硬盘文档,可以使用Google Apps脚本将值写入Google云端硬盘电子表格。

与文档关联的脚本看起来很像这样:

// must change value to actual spreadsheet ID
RobProject.spreadsheetID  = "spreadsheetID";

function onOpen()
{
    // do stuff;
}

每次创建电子表格及其相关文档时,我都会手动将值spreadsheetID更改为电子表格的ID,以便文档知道应该在哪个电子表格中写入其值。

我希望以编程方式在文档脚本中填入spreadsheetID的正确值。

当我搜索“以编程方式编辑脚本”时,我会获得创建Google Apps脚本的教程,而不是使用脚本编辑脚本。有没有办法使用Google Apps脚本编辑Google Apps脚本?

2 个答案:

答案 0 :(得分:2)

如果我理解正确,您正在使用文档和电子表格。该文档需要知道电子表格的ID。

有一些方法可以通过API访问Google Apps脚本代码,但这仅适用于独立项目,不适用于容器绑定脚本(不幸的是)。

您可以考虑对文档和电子表格使用命名约定,以便您可以使用Drive服务从文档获取电子表格(DriveApp.getFilesByName())。或者可能按文件夹(DriveApp.getFoldersByName(),folder.getFiles())组织它们。

如果要将电子表格ID存储在项目属性中,可以在文档中构建一个UI,让用户打开Drive中的文件列表并选择关联的电子表格,然后存储Id(ScriptProperties.setProperty) ( 'SpreadsheetId'))。

答案 1 :(得分:1)

不要忘记onOpen有一个参数。您可以使用以下代码:

// Define global variable somewhere 
RobProject = {};

function onOpen(e) {

  RobProject.sSheet = e.source; // maybe the spreadsheet object is as useful as the ID
  RobProject.spreadsheetID = e.source.getId();

    // do stuff;
}

请为了您自己,请不要尝试编写自修改代码。