如何使用谷歌应用程序脚本获取链接到工作表的表单?

Dan*_*ana 6 google-sheets google-apps-script google-forms

在Spreadsheet类中,它getFormUrl()返回附加到电子表格的表单的 url,如果没有表单则返回 null。

但是现在您可以将表单附加到每个工作表,那么如何获取附加到给定工作表的表单的 ID 或 Url?

Mic*_*erg 4

您可以getFormUrl在电子表格以及电子表格的每个工作表上调用:

let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheets = ss.getSheets();

for (let sheet of sheets) {
    let sheetName = sheet.getName();
    let formUrl = sheet.getFormUrl();
    Logger.log("formUrl1 %s %s", sheetName, formUrl);
    if (formUrl) {
      Logger.log("formid1 %s", FormApp.openByUrl(formUrl).getId());
    }
}

let formUrl = ss.getFormUrl();
Logger.log("formUrl2 %s", formUrl);
if (formUrl) {
  Logger.log("formid2 %s", FormApp.openByUrl(formUrl).getId());
}
Run Code Online (Sandbox Code Playgroud)

就我而言,电子表格是由表单创建的(在“答案”部分中,绿色电子表格图标),formUrl2 引用此表单。其中一张工作表的 formUrl1 也与该表单相关,因为该工作表包含该表单的答案。另一张表有第二个表单的 URL,因为我将第二个表单连接到同一个电子表格。第三个工作表的 formUrl 为 null,因为它与表单无关。