Comportamiento extraño con DriveApp.getFileById ()

Code todavía está en la fase de Prueba de concepto: intentará explicar el resultado esperado y el resultado que estoy obteniendo.

Este script será una combinación de correspondencia genérica. Se espera que el script haga lo siguiente:

suario @Prompt para la identificación del archivo de plantilla que se utilizará. (Documento de Google Docs) Haga una copia de la plantilla y cambie los valores en el cuerpo de la copia de la plantilla. Obtenga la copia editada de la plantilla y adjúntela a un correo electrónico.Haga esto una vez por cada fila en la hoja de cálculo.

Mientras todo lo anterior funciona realmente bien, el comportamiento extraño se produce al adjuntar la copia editada de la plantilla. En lugar de obtener una versión editada de la plantilla, recibo una versión no editada de la plantilla adjunta al correo electrónico

function myFunction() {


var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Please enter the ID of your template file.', ui.ButtonSet.OK_CANCEL);

if(response.getSelectedButton() == ui.Button.OK){
var templateid = response.getResponseText()
}//End of IF Statement

var docid = DriveApp.getFileById(templateid).makeCopy().getId();
var doc = DocumentApp.openById(docid);
var body = doc.getBody();

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lastColumn = sheet.getLastColumn();

sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn()).setNumberFormat("@");


var array = [];

for(var i = 1; i < lastColumn-1; i++) {
var headers = sheet.getRange(1, i, 1, 1).getValue();
array.push(headers)
}//END OF OUTER 1

for (var k = 2; k < sheet.getLastRow()+1; k++){
var row = sheet.getRange(k, 1, 1, lastColumn).getValues()

for (var j = 0; j <array.length; j++){
body.replaceText("<"+array[j]+">", row[0][j]);
}//END OF INNER


var recipient = sheet.getRange(k, lastColumn - 1, 1, 1).getValue();
var emailBody = "Good Day,\n\nPlease see attatched.\n\nRegards\nPerson's Name Here"
var subject = "See attatched";
var attatchment = DriveApp.getFileById(doc.getId());

Logger.log(doc.getId())


MailApp.sendEmail(recipient, subject, emailBody, {attachments: attatchment})

}//END OF OUTER 2
}//END OF FUNCTION
Hoja de cálculo utilizada:

Resultado Esperado

Resultado actual

Respuestas a la pregunta(1)

Su respuesta a la pregunta