Google Scripts, для l oop не работает должным образом - PullRequest
1 голос
/ 18 апреля 2020

Я пытаюсь создать динамическое c googledo c, которое использует% Address0%,% Address1%,% Address2% и т. Д. c. заполнить из электронной таблицы, которая содержит информацию. мой текущий код работает для всех первых% description0%, но последующие% desription1%,% description2% не заполняются. Я предполагаю, что мой for-l oop не выполняет итерацию после первой итерации, или по какой-то причине тело не может быть изменено дважды, но я не могу найти в подтверждающей документации ничего, что могло бы дать мне эту идею.

Кроме того, я исключил возможность того, что что-то не так с данными var, я могу получить все свойства по одному, например: я могу получить% Address0%,% Type0%,% Price0% для правильного заполнения ИЛИ Я могу получить% Address1%,% Type1%,% Price1%, но я не могу заставить их сделать все это сразу.

// create a menu
function onOpen() {
  var menuEntries = [ {name: "Create CMA", functionName: "CreateCMA"}];
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.addMenu("CMA Generator", menuEntries);
}

function CreateCMA() {
  var templateid = "1uLC41M1B0KjtC_AlxFAT2h2_9HPLsLSk4HPhXgq2ebY"; // template file id
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var data = sheet.getRange(2,1,6,11).getValues(); // starting with row 2 and column 1 as our upper-left most column
  var docid = DriveApp.getFileById(templateid).makeCopy().getId();
  // Create our number formatter.
  var formatter = new Intl.NumberFormat('en-US', {
  style: 'currency',
  currency: 'USD',
  });
  var doc = DocumentApp.openById(docid);

  for (var r = 0; r < 6; r++){
    var body = doc.getBody();
    var row = data[r];
    body.replaceText("%Address" + r + "%", row[0]);
    body.replaceText("%Type" + r + "%", row[1]);
    body.replaceText("%Price" + r + "%", formatter.format(row[2]));
    var date = row[3];
    var dateform = Utilities.formatDate(date, "+5", "dd MMM yyyy");
    body.replaceText("%Date" + r + "%", dateform);
    body.replaceText("%Built" + r + "%", row[4]);
    body.replaceText("%Square_ft" + r + "%", row[5]);
    body.replaceText("%Bedroom" + r + "%", row[6]);
    body.replaceText("%Bath" + r + "%", row[7]);
    body.replaceText("%Assessed_Val" + r + "%", formatter.format(row[8]));
    body.replaceText("%Initial_Ask" + r + "%", formatter.format(row[9]));
    var post = row[10];
    var postform = Utilities.formatDate(post, "+5", "dd MMM yyyy");
    body.replaceText("%Day_Posted" + r + "%", postform);
  }
    doc.saveAndClose();

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...