首页 > 解决方案 > 我们 GS 使用 .makeCopy 创建新文档

问题描述

我一直在按照初学者指南从 Google 表单提交中自动填写 Google 文档,其中一行代码应该是 var copy = templateFile.makeCopy(lastName + ', ' + firstName, templateResponseFolder); 这将使用新信息制作文档的副本,但是当我键入 .m 时,没有任何下拉菜单或自动完成 makeCopy 的任何内容。有没有我不知道的新脚本?下面是我的完整脚本。

function autoFillGoogleDocFromForm(e) {
 var timestamp = e.values[0];
 var firstName = e.values[1];
 var lastName = e.values[2];
 var title = e.values[3];

 var templateFile = DriveApp.getFolderById("1FbWjGH9phpWN2i4vGqWnvJyBG3HPc_uxkHfWsHzg00E");
 var templateResponseFolder = DriveApp.getFolderById("1rEGYnVhJ2vpG_AnqqrVFxPx5rWOmOUj9");

 var copy = templateFile.makeCopy(lastName + ', ' + firstName, templateResponseFolder);

 var doc = DocumentApp.openById(copy.getId());

 var body = doc.getBody();

 body.replaceText("{{FirstName}}", firstname);
 body.replaceText("{{LastName}}", lastname);
 body.replaceText("{{Title}}", title);

 doc.saveAndClose();

}

标签: google-apps-script

解决方案


修改点:

  • 当我看到你的脚本时,似乎templateFileDriveApp.getFolderById()makeCopy我认为类文件夹中没有方法。参考
  • 但是,从 ID 中的长度来看DriveApp.getFolderById("1FbWjGH9phpWN2i4vGqWnvJyBG3HPc_uxkHfWsHzg00E"),我认为您可能想要DriveApp.getFileById("1FbWjGH9phpWN2i4vGqWnvJyBG3HPc_uxkHfWsHzg00E"). 在这种情况下,templateFile.makeCopy()可以使用。
  • 而且,在你的脚本中,firstName并被lastName声明。but firstNameand lastNameof body.replaceText("{{FirstName}}", firstName)and body.replaceText("{{LastName}}", lastName)没有被声明。如果你想使用firstNameand lastName,也请修改它们。

当以上几点反映到您的脚本时,它变成如下。

修改后的脚本:

function autoFillGoogleDocFromForm(e) {
  var timestamp = e.values[0];
  var firstName = e.values[1];
  var lastName = e.values[2];
  var title = e.values[3];
  var templateFile = DriveApp.getFileById("1FbWjGH9phpWN2i4vGqWnvJyBG3HPc_uxkHfWsHzg00E");  // Modified
  var templateResponseFolder = DriveApp.getFolderById("1rEGYnVhJ2vpG_AnqqrVFxPx5rWOmOUj9");
  var copy = templateFile.makeCopy(lastName + ', ' + firstName, templateResponseFolder);
  var doc = DocumentApp.openById(copy.getId());
  var body = doc.getBody();
  body.replaceText("{{FirstName}}", firstName);  // Modified
  body.replaceText("{{LastName}}", lastName);  // Modified
  body.replaceText("{{Title}}", title);
  doc.saveAndClose();
}

参考:


推荐阅读