使用Google App Maker合并文档

时间:2018-03-07 07:07:06

标签: google-docs google-app-maker

我想将文档合并集成到我在Google App Maker中创建的工作流程中。每当在表单中提交输入时,如果模板包含与该字段名称匹配的占位符,则应将答案合并到Google Docs模板中。例如,如果字段名称为last_name,则占位符为{{last_name}}。

文档合并应该遍历每个项目的每个字段,这样我就不必将字段名称编程到脚本中。在Google电子表格中,可以使用类似

的循环解决此问题
function documentMerge() {
  var ss = SpreadsheetApp.getActiveSpreadsheet.getActiveSheet;
  var lastClmn = ss.getDataRange.getLastColumn();
  var lastRow = ss.getDataRange.getLastRow();

  for (var i=0, lastClmn, i++) {
    for (var j=1, lastRow, j++) {  
      // if '{{' + (ss.getRange(0, i).getValue()) + '}}' is found in document
      // ... replace placeholder in document with contents from column i, row j ...
  }

Google App Maker中是否存在类似的内容?

1 个答案:

答案 0 :(得分:2)

将以下内容放入模型的onAfterCreate事件中:

var templateId = 'your template ID';
var filename = 'Document for Customer ' + record.ClientName + new Date();

var copyFile = DriveApp.getFileById(templateId).makeCopy(filename);

var copyDoc = DocumentApp.openById(copyFile.getId());
var copyBody = copyDoc.getBody();
var fields = app.metadata.models.Clients.fields;

for (var i in fields) {
  var text = '<<' + fields[i].name + '>>';
  var data = record[fields[i].name];
  copyBody.replaceText(text, data);
}

copyDoc.saveAndClose();

那应该为你做。查看有关模板和已创建文档的图片。 Application Form

Document Template

Filled Template