Google Apps Script Exportieren einer leeren Kopie einer kopierten Vorlagen-Tabelle
Ich habe eine Quell-Tabelle mit Inhalten.
Ich habe eine Zielvorlage für diesen Inhalt.
Ich wähle und kopiere den Inhalt in der Quell-Tabelle.
Ich erstelle eine Kopie der Zielvorlage und füge sie in den Inhalt des Quell-Arbeitsblatts ein.
Anschließend führe ich einen Code aus, um die Zielvorlage als XLSX-Datei zu exportieren und an eine E-Mail anzuhängen.
Die E-Mail und der Anhang kommen durch, aber der Inhalt der XLSX-Datei stimmt mit der ursprünglichen Vorlage überein - der Inhalt, den ich eingefügt habe, fehlt.
Wenn ich jedoch meinen Export-String nehme und ihn über den Browser ausführe, exportiert er die XLSX-Datei einwandfrei mit dem Inhalt!
Es scheint, dass die Exportfunktion ausgeführt wird, bevor das Einfügen des Inhalts abgeschlossen ist und die neu erstellte Zielvorlage ohne den Inhalt gesendet wird.
Ich habe bereits Utilities.sleep (30000) ausprobiert, aber egal wie lange ich warte, ich erhalte immer eine leere Kopie der Originalvorlage. WTF ?!
Vollständiger Code:
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});
}