我有一个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脚本?
答案 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;
}
请为了您自己,请不要尝试编写自修改代码。