所以我目前正在使用它来获取附加组件的活动文件ID。但是,这仅适用于文档而不适用于电子表格或表单。有人知道解决这个问题吗?
var files = DriveApp.getFileById(DocumentApp.getActiveDocument().getId());
答案 0 :(得分:1)
试试这个:
var id, ss, doc, form;
ss = SpreadsheetApp.getActiveSpreadsheet();
doc = DocumentApp.getActiveDocument();
form = FormApp.getActiveForm();
if (ss != null && ss != undefined)
id = ss.getId();
else if (doc != null && doc != undefined)
id = doc.getId();
else if (form != null && form != undefined)
id = form.getId();
我还没有机会测试它,但我相信它会起作用。如果它在尝试获取活动文档的任何行上抛出错误,则需要使用嵌套的try catch。
答案 1 :(得分:-1)
对于id
,您可以手动获取。在此示例网址中,
https://docs.google.com/spreadsheets/d/samaladfajefjasdkfje/edit
d/
和/edit
之间的是id
。
另一种选择是为每个其他文件创建一个容器绑定脚本并编写
function activeID()
{
Logger.log(SpreadsheetApp.getActiveSpreadsheet().getId());
}
然后运行并按ctrl + enter(" View> Logs"如果它不起作用)。然后,记住记录的值。