【发布时间】:2016-09-27 17:10:30
【问题描述】:
如果在 Google Doc 的 onOpen 函数中,我通过按 id 打开电子表格来创建电子表格对象,如果我使用菜单系统,如何将该对象传递给其他函数? (下面有更长的解释)
我有一个 google doc 脚本,它将在特定时间拍摄文档的快照,然后将其导出到 .docx 并使用快照的 url 更新电子表格。这是由一个菜单选项启动的,如下所示:
function onOpen(e) {
DocumentApp.getUi().createMenu('Senate Secretary Menu')
.addItem('Snapshot', 'snapshot')
.addToUi();
}
调用函数snapshot()
function snapshot() {
//open the spreadsheet using id
var ss=SpreadsheetApp.openById('spreadsheet_id');
这会产生一个you do not have permission to call openbyid() 错误
我了解 google 脚本禁止在自定义函数中调用 openbyid()(我将其解释为电子表格中的函数,但whatevs)。 如果我将 onOpen 函数更改为包含 OpenById() 调用,它将起作用。
function onOpen(e) {
DocumentApp.getUi().createMenu('Senate Secretary Menu')
.addItem('Snapshot', 'snapshot')
.addToUi();
var ss=SpreadsheetApp.openById('spreadsheet_id');
}
我的问题是如何将文件对象从 onOpen 函数传递给快照函数?
【问题讨论】:
-
澄清一下,您使用的是实际的电子表格 ID(一长串字母和数字)还是字符串
'spreadsheet_id'? -
其实是一长串数字。但我发现下面发布的错误。
标签: google-apps-script google-docs-api