我在谷歌电子表格中有一个脚本,它打开一个谷歌文档,并返回表格某个单元格中的文本,如下所示:
function getItemStatus(docUrl) {
var doc = DocumentApp.openByUrl(docUrl);
var docBody = doc.getBody();
var docTbls = docBody.getTables();
var itmTbl = docTbls[0];
var itmStatus = itmTbl.getCell(3,1).getText();
return itmStatus;
}
当我试图在电子表格中运行该函数时,它会返回以下错误:
错误:您没有权限调用openByUrl(第39行,文件"代码")
如果我创建另一个函数来直接调用上面的函数,它会很好地工作,并返回我想要的值。
function testItemGet() {
var docUrl = ("...");
itmStr = getItemStatus(docUrl);
Logger.log("The item's value is " + itmStr)
}
生成的日志文件:
[13-07-17 19:27:39:130EDT]开始执行
[13-07-17 19:27:39:387EDT]DocumentApp.openByUrl([…])[0.253秒]
[13-07-17美国东部时间19:27:39:388]文档.getBody()[0秒]
[13-07-17美国东部时间19:27:39:388]Body.getTables()[0秒]
[13-07-17 19:27:39:388 EDT]Table.getCell([3,1])[0秒]
[13-07-17美国东部时间19:27:39:389]TableCell.getText()[0秒]
[13-07-17 19:27:39:389 EDT]Logger.clear()[0秒]
[13-07-17 19:27:39:389 EDT]Logger.log([项目值为递延,[])[0秒]
[13-07-17 19:27:39:390EDT]执行成功[0.256秒总运行时间]
根据我在谷歌上搜索的内容,只要我对文档有编辑权或所有者权,我就应该能够做到这一点。
我是谷歌应用程序脚本的新手,所以请温柔一点。:)
提前感谢您的帮助和耐心!
自定义函数以有限的权限运行,不能利用依赖用户凭据的服务,包括DocumentApp。
https://developers.google.com/apps-script/execution_custom_functions#permissions