1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
   | function doMerge() {
  var selectedTemplateId = "Mon doc";
 
  var templateFile = DriveApp.getFileById(selectedTemplateId);
  var mergedFile = templateFile.makeCopy();
    mergedFile.setName("essai"+templateFile.getName());
  var mergedDoc = DocumentApp.openById(mergedFile.getId());
  var bodyElement = mergedDoc.getBody();
  var bodyCopy = bodyElement.copy();
 
    bodyElement.clear();
 
  var sheet = SpreadsheetApp.getActiveSheet();
 
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();
  var fieldNames = values[0];
 
  for (var i = 1; i < numRows; i++) {
    var row = values[i];
    var body = bodyCopy.copy();
 
  for (var f = 0; f < fieldNames.length; f++) {
      body.replaceText("##" + fieldNames[f] + "##", row[f]);
    }
 
    var numChildren = body.getNumChildren();
 
  for (var c = 0; c < numChildren; c++) {
      var child = body.getChild(c);
      child = child.copy();
      if (child.getType() == DocumentApp.ElementType.HORIZONTALRULE) {
        mergedDoc.appendHorizontalRule(child);
      } else if (child.getType() == DocumentApp.ElementType.INLINEIMAGE) {
        mergedDoc.appendImage(child.getBlob());
      } else if (child.getType() == DocumentApp.ElementType.PARAGRAPH) {
        mergedDoc.appendParagraph(child);
      } else if (child.getType() == DocumentApp.ElementType.LISTITEM) {
        mergedDoc.appendListItem(child);
      } else if (child.getType() == DocumentApp.ElementType.TABLE) {
        mergedDoc.appendTable(child);
      } else {
        Logger.log("Unknown element type: " + child);
      }
   }
 
   mergedDoc.appendPageBreak();
 
  }
} | 
Partager