Google Apps Script Экспорт пустой копии скопированной таблицы шаблона

У меня есть исходная таблица с содержанием.

У меня есть шаблон назначения для этого контента.

Я выбираю и копирую содержимое в исходной электронной таблице.

Я создаю копию целевого шаблона и вставляю в исходную электронную таблицу содержимое.

Затем я выполняю некоторый код для экспорта шаблона назначения в виде файла XLSX и прикрепляю его к электронному письму.

Сообщение электронной почты и вложение приходят, но содержимое файла XLSX соответствует исходному шаблону - содержимое, которое я вставил, отсутствует.

Тем не менее, если я возьму свою строку экспорта и запущу ее через браузер, она экспортирует файл XLSX, просто отлично с содержимым!

Похоже, что функция экспорта работает до завершения вставки содержимого и отправки вновь созданного шаблона назначения без содержимого.

Я уже пробовал Utilities.sleep (30000), но сколько бы я ни ждал, я всегда получаю чистую копию оригинального шаблона. WTF ?!

Полный код:

function sendVendor() {
  // Open the Active Spreadsheet
  var ssMaster = SpreadsheetApp.getActiveSpreadsheet();

  var sheetInsert = ssMaster.getSheetByName('Insert RFQ');
  var rfqNumber = sheetInsert.getRange('AW2').getValue();

  var sheetWorkUp = ssMaster.getSheetByName('WORK UP');

  var backgroundColor = '#FF5050';
  var row = 11;
  var newSheetRow = 13;
  var numRows = 0;

  var valuesPartNumbers = sheetWorkUp.getRange(12, 2, 233, 1).getValues();

  var size = valuesPartNumbers.filter(function(value) { return value != '' }).length;

  size = size - 1;

  // Create the new RFQ from Template
  var template = DocsList.getFileById('1M2f5yoaYppx8TYO_MhctEhKM_5eW-QCxlmJdjWg9VUs');  // Quote Workup Template
  var newRFQ = template.makeCopy('Vendor RFQ Request ' + rfqNumber);
  var newRFQId = newRFQ.getId();

  var folderNew = DocsList.getFolder('Vendor RFQ Requests');
  newRFQ.addToFolder(folderNew)

  // Open new RFQ
  var ssTemplate = SpreadsheetApp.openById(newRFQId);
  var sheetVendorRequest = ssTemplate.getSheetByName('Vendor Request');

  var newTemplateURL = ssTemplate.getUrl();

  var needPricing = new Array();
  var valuesFRCosts = sheetWorkUp.getRange(12, 8, size, 1).getValues();

  for (var i = 0; i < valuesFRCosts.length; i++) {
    row++;

    if (valuesFRCosts[i][0] == '') {      
      var sheetWorkUpRow = sheetWorkUp.getRange(row, 1, 1, sheetWorkUp.getLastColumn());
      sheetWorkUpRow.setBackground(backgroundColor);

      var sendToTemplate = sheetWorkUp.getRange(row, 1, 1, 6).getValues();
      sendToTemplate[0].splice(2, 1);

      sheetVendorRequest.getRange(newSheetRow, 2, 1, 5).setValues(sendToTemplate);

      newSheetRow++;      
    }
  }

  var url = 'https://docs.google.com/feeds/download/spreadsheets/Export?key=' + newRFQId + '&exportFormat=xlsx';
  var doc = UrlFetchApp.fetch(url);

  var attachments = [{fileName:'Vendor RFQ Request ' + rfqNumber, content: doc.getContent(),mimeType:"application/vnd.ms-excel"}];
  MailApp.sendEmail("[email protected]", "Excel Export Test", "See the attached Excel file.", {attachments: attachments}); 
}

Ответы на вопрос(1)

Ваш ответ на вопрос