复制后如何更改 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?的主要内容,如果未能解决你的问题,请参考以下文章