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

问题描述 投票:2回答:3

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

但是现在您可以在每张工作表上附加一个表单,如何获取附加到给定工作表的表单的ID或URL?

google-apps-script
3个回答
1
投票

我刚刚获取了getFormUrl提供的URL,并将字母49到93分配给了一个字符串。那应该提供表格ID。

var ss=SpreadsheetApp.getActiveSpreadsheet();
var fOrmUrl=ss.getFormUrl();
var sTring="";
for (var i=49; i<93; i++)
{
  sTring=sTring + fOrmUrl[i];
}

0
投票

我注意到sheet.getFormURL()方法并不总是返回form.getPublishedUrl()返回的相同URL。但是,这两个URL都是有效的。为了解决这个问题,我打开工作表的formUrl,然后检查并比较该表单的ID:

var form = FormApp.getActiveForm();
var formId = form.getId();
const matches = spreadSheet.getSheets().filter(function (sheet) {
  var sheetFormUrl = sheet.getFormUrl();
  if (sheetFormUrl){
    return FormApp.openByUrl(sheetFormUrl).getId() === formId;
  }
});
const sheet = matches[0]

-1
投票

我举例说明了我的剧本。也许它可以帮到你。

例如:

var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName("Sheet1");
  var data = ss.getDataRange().getValues();  // Data for pre-fill

  var formUrl = ss.getFormUrl();             // Use form attached to sheet
  var form = FormApp.openByUrl(formUrl);
  var items = form.getItems();
© www.soinside.com 2019 - 2024. All rights reserved.