Google apps script 从Google表单创建新文档并添加到新文件夹
我在提交表单时触发了一个谷歌脚本。它根据模板创建一个新的文档,模板中的某些变量由表单中的答案填充 我还有一个在表单提交上创建的文件夹 我遇到的麻烦是在新创建的文件夹中创建新创建的文档。寻找一些帮助合并两个脚本,他们自己的工作来实现这一点 在表单提交时创建文件夹:Google apps script 从Google表单创建新文档并添加到新文件夹,google-apps-script,google-sheets,google-docs,google-forms,google-docs-api,Google Apps Script,Google Sheets,Google Docs,Google Forms,Google Docs Api,我在提交表单时触发了一个谷歌脚本。它根据模板创建一个新的文档,模板中的某些变量由表单中的答案填充 我还有一个在表单提交上创建的文件夹 我遇到的麻烦是在新创建的文件夹中创建新创建的文档。寻找一些帮助合并两个脚本,他们自己的工作来实现这一点 在表单提交时创建文件夹: function createChannelFolder() { var ss = SpreadsheetApp.getActive(); var names = ss.getSheetByName("Completed Ce
function createChannelFolder() {
var ss = SpreadsheetApp.getActive();
var names = ss.getSheetByName("Completed Certifications");
var ChannelName = names.getRange(names.getLastRow(), 2).getValue();
var parentFolder=DriveApp.getFolderById("FOLDERID");
return newFolder=parentFolder.createFolder(ChannelName);
}
在表单提交时创建文档
function autoFillGoogleDocFromForm(e) {
//e.values is an array of form values
var Timestamp = e.values[0];
var Channel = e.values[1];
var Name = e.values[2];;
var file = DriveApp.getFileById('FILEID');
var folder = DriveApp.getFolderById('FOLDERID')
var copy = file.makeCopy(Channel + ',' + Name, folder);
var newId = copy.getId();
var doc = DocumentApp.openById(newId);
var body = doc.getBody();
body.replaceText('{{Timestamp}}', Timestamp);
body.replaceText('{{Channel}}', Channel);
body.replaceText('{{Name}}', Name);
doc.saveAndClose();
}
说明:
- 您需要在内部调用
createChannelFolder()
自动填充GoogleDocFromForm(e)
- 只需返回
:createChannelFolder()中的文件夹对象即可
返回parentFolder.createFolder(ChannelName)代码>
解决方案: 以下是自动填充GoogleDocFromForm(e): 下面是
createChannelFolder()
:
工作完美,唯一突出的问题是创建了两个文件夹,其中一个包含文档,有什么想法吗?
function autoFillGoogleDocFromForm(e) {
//e.values is an array of form values
var Timestamp = e.values[0];
var Channel = e.values[1];
var Name = e.values[2];;
var file = DriveApp.getFileById('FILEID');
var folder = createChannelFolder(); // 1st modification point
var copy = file.makeCopy(Channel + ',' + Name, folder);
var newId = copy.getId();
var doc = DocumentApp.openById(newId);
var body = doc.getBody();
body.replaceText('{{Timestamp}}', Timestamp);
body.replaceText('{{Channel}}', Channel);
body.replaceText('{{Name}}', Name);
doc.saveAndClose();
}
function createChannelFolder() {
var ss = SpreadsheetApp.getActive();
var names = ss.getSheetByName("Completed Certifications");
var ChannelName = names.getRange(names.getLastRow(), 2).getValue();
var parentFolder=DriveApp.getFolderById("FOLDERID");
return parentFolder.createFolder(ChannelName); // 2nd modification point
}