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}); 
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage