使用GAS将现有文档保存到文件夹

时间:2017-12-12 17:51:55

标签: google-apps-script

我正在开展一个项目,该项目执行表单信息与模板的邮件合并并通过电子邮件发送文档。现在我需要更改,以便将文档保存到名为“OUTPUT”的驱动器文件夹中。根据我的工作原始代码,我有:

grid-template-columns: repeat(3, auto);

合并的'doc'文件保存到数组中。接下来,我尝试使用:

遍历文档数组
  for (i in templateNamesArray) {

    var templateName = templateNamesArray[i];
    var newNameArray = templateName.split(' of ')        
    var templateid = getTemplateIdByName(templateName);

    var docid = DriveApp.getFileById(templateid).makeCopy(newNameArray[1]).getId();
    var doc = DocumentApp.openById(docid);
    var body = doc.getBody();
    Logger.log(body);
    Object.keys(formObject).forEach(function(key) {
      var field = '%' + key + '%';
      var val = formObject[key];
      body.replaceText(field, val);
    });
    doc.saveAndClose();
    documentArray.push(doc);

  }

然而,“folder.addFile(docFile)”行失败,并且在OUTPUT中没有创建任何文件。但是由于SaveandClose函数,它们被保存在我假定的模板文件夹中。我怎样才能使这个工作?

1 个答案:

答案 0 :(得分:1)

将文件添加到documentArray,以便在DriveApp中使用时,使用抓取文件的DriveApp方法而非使用DocumentApp中的文档应该可以正常工作< / p>

...

  doc.saveAndClose();
  documentArray.push(DriveApp.getFileById(docid));

}

编辑:addFile

for (i in documentArray) {

  folder.addFile(documentArray[i])

}