Google apps script 如何在google apps脚本中获取活动文件ID

Google apps script 如何在google apps脚本中获取活动文件ID,google-apps-script,Google Apps Script,因此,我目前正在使用它来获取加载项的活动文件id。然而,这只适用于文档,而不适用于电子表格或表单。有人知道这件事吗 var files = DriveApp.getFileById(DocumentApp.getActiveDocument().getId()); 试试这个: var id, ss, doc, form; ss = SpreadsheetApp.getActiveSpreadsheet(); doc = DocumentApp.getActiveDocument(); fo

因此,我目前正在使用它来获取加载项的活动文件id。然而,这只适用于文档,而不适用于电子表格或表单。有人知道这件事吗

 var files = DriveApp.getFileById(DocumentApp.getActiveDocument().getId());
试试这个:

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捕获

试试这个:

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捕获

对于
id
可以手动获取。在这个示例网址中

https://docs.google.com/spreadsheets/d/samaladfajefjasdkfje/edit
d/
/edit
之间是
id

另一个选项是为其他每个文件创建一个绑定到容器的脚本,然后写入

function activeID()
{
  Logger.log(SpreadsheetApp.getActiveSpreadsheet().getId());
}

然后运行并按ctrl+enter(“查看>日志”,如果不起作用)。然后,记住记录的值。

对于
id
,您可以手动获取它。在这个示例网址中

https://docs.google.com/spreadsheets/d/samaladfajefjasdkfje/edit
d/
/edit
之间是
id

另一个选项是为其他每个文件创建一个绑定到容器的脚本,然后写入

function activeID()
{
  Logger.log(SpreadsheetApp.getActiveSpreadsheet().getId());
}

然后运行并按ctrl+enter(“查看>日志”,如果不起作用)。然后,记住记录的值。

请阅读文档:我不是这个意思。我希望我的加载项能够访问所有三个。我不想特别地将DocumentApp更改为SpreadsheetApp。顺便说一句,我也阅读了文档。试试catch,或者如果其他方法可以的话。如果可能的话,你似乎想要一条单行线,但我不这么认为。不过只有几行代码。所以本质上是打开检查它是否是一个文档表单或电子表格,然后从那里开始?有没有一个类可以让你区分这三个呢?请阅读文档:我不是这个意思。我希望我的加载项能够访问所有三个。我不想特别地将DocumentApp更改为SpreadsheetApp。顺便说一句,我也阅读了文档。试试catch,或者如果其他方法可以的话。如果可能的话,你似乎想要一条单行线,但我不这么认为。不过只有几行代码。所以本质上是打开检查它是否是一个文档表单或电子表格,然后从那里开始?是否有一个类允许您区分这三个类?