复制后如何更改 Google 表单 ID?

Posted

技术标签:

【中文标题】复制后如何更改 Google 表单 ID?【英文标题】:How to change Google form ID after copying? 【发布时间】:2020-11-10 10:03:00 【问题描述】:

我每天都进行在线会议,并以谷歌形式从学生那里获得反馈。我每天使用复制菜单复制表格并创建新的反馈表格。现在我正在尝试使用 Google Script。 我使用以下标准谷歌脚本来复制谷歌表单模板。 但是复制的表单具有相同的 id。 我需要更改复制的 google 表单的 id 以便它可以每天使用。如何更改复制表单的 ID? 注意 :表格收集电子邮件,因此如果表格 id 相同,则不允许学生在第二天使用相同的电子邮件输入数据(说 - 数据已输入)

// Open a form by ID and create a new spreadsheet.
var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
var ss = SpreadsheetApp.create('Spreadsheet Name');

// Update form properties via chaining.
form.setTitle('Form Name')
    .setDescription('Description of form')
    .setConfirmationMessage('Thanks for responding!')
    .setAllowResponseEdits(true)
    .setAcceptingResponses(false);

// Update the form's response destination.
form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId());

【问题讨论】:

注意 file.makeCopy(file, folder);也创建具有相同 id 的表单 【参考方案1】:

Google 云端硬盘上的两个不同文件的 ID 永远不会相同

文件id 是一个唯一标识符,通过它可以访问、修改、共享文件等。

id 不能手动更改,也没有必要,因为您的表单副本永远不会有相同的 id

您的问题是另一回事:

您的代码不会复制表单,它只会创建一个新的目标电子表格。

要复制现有表单,您可以实现例如:

  var newFile = DriveApp.getFileById('1234567890abcdefghijklmnopqrstuvwxyz').makeCopy();
  var newFormID = newForm.getId();
  var newForm = FormApp.openById(newFormID);

【讨论】:

谢谢。我尝试使用 file.makeCopy(file, folder) 制作副本 - 正如我的原始帖子下方所评论的那样,但我没有对主代码进行适当的更改,因此从未达到该功能。现在很清楚为什么代码失败了。非常感谢。

以上是关于复制后如何更改 Google 表单 ID?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过javascript或jquery更改href? [复制]

保存对表单控件所做的更改? [复制]

如何在 Google 表单/表格中编辑表单提交的响应?

如何防止excel保存后更改csv文件编码? [复制]

关注表单时如何更改表单中输入标签的颜色? [复制]

登录asp.net后如何更改会话ID