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("user@domain.com", "Excel Export Test", "See the attached Excel file.", {attachments: attachments});
}