google-apps-script - 我们 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();
}
解决方案
修改点:
- 当我看到你的脚本时,似乎
templateFile
是DriveApp.getFolderById()
。makeCopy
我认为类文件夹中没有方法。参考 - 但是,从 ID 中的长度来看
DriveApp.getFolderById("1FbWjGH9phpWN2i4vGqWnvJyBG3HPc_uxkHfWsHzg00E")
,我认为您可能想要DriveApp.getFileById("1FbWjGH9phpWN2i4vGqWnvJyBG3HPc_uxkHfWsHzg00E")
. 在这种情况下,templateFile.makeCopy()
可以使用。 - 而且,在你的脚本中,
firstName
并被lastName
声明。butfirstName
andlastName
ofbody.replaceText("{{FirstName}}", firstName)
andbody.replaceText("{{LastName}}", lastName)
没有被声明。如果你想使用firstName
andlastName
,也请修改它们。
当以上几点反映到您的脚本时,它变成如下。
修改后的脚本:
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();
}
参考:
推荐阅读
- javascript - 将“手工”响应放入缓存
- oracle-apex-5 - 使用 DB 包的 APEX 页面进程
- linux - Paramiko sftp 请求在 python 中被 EOFError() 终止
- c - C - 按钮按下一次注册两次 - MSP430
- javascript - 使用 fetch javascript 查询字符串
- kubernetes - Kubernetes 指标服务器没有响应
- mongodb - 从 MongoDB 的数组中删除一个元素?
- java - 将 JUnit @BeforeClass 与 Cucumber 一起使用...有效吗?
- elasticsearch - 每个类别的最新文件?
- ios - iOS 没有正确杀死应用程序 - Ionic