2017-12-12 4 views
0

Ich arbeite an einem Projekt, das einen Serienbrief von Formularinformationen mit einer Vorlage durchführt und die Dokumente per E-Mail versendet. Jetzt muss ich ändern, damit die Dokumente in einem Laufwerksordner mit dem Namen "OUTPUT" gespeichert werden. Basierend auf meinem ursprünglichen Arbeitscode habe ich:Vorhandenes Dokument in Ordner mit GAS speichern

for (i in templateNamesArray) { 

    var templateName = templateNamesArray[i]; 
    var newNameArray = templateName.split(' of ')   
    var templateid = getTemplateIdByName(templateName); 

    var docid = DriveApp.getFileById(templateid).makeCopy(newNameArray[1]).getId(); 
    var doc = DocumentApp.openById(docid); 
    var body = doc.getBody(); 
    Logger.log(body); 
    Object.keys(formObject).forEach(function(key) { 
     var field = '%' + key + '%'; 
     var val = formObject[key]; 
     body.replaceText(field, val); 
    }); 
    doc.saveAndClose(); 
    documentArray.push(doc); 

    } 

die zusammengeführten 'doc' Dateien werden in einem Array gespeichert. Als nächstes habe ich versucht, durch das Dokument-Array-Schleife mit:

var folders = DriveApp.getFoldersByName("OUTPUT"); 

while (folders.hasNext()) { 


var folder = folders.next(); 

for (i in documentArray) { 

    docFile = documentArray[i]; 
      Logger.log('while3'); 


    folder.addFile(docFile) 


} 

} 

jedoch die Zeile „folder.addFile (DocFile)“ schlägt fehl, und keine Dateien in OUTPUT erstellt. Sie werden jedoch aufgrund der Funktion SaveandClose im Vorlagenordner gespeichert. Wie kann ich das funktionieren lassen?

Antwort

1

Beim Hinzufügen der Datei auf die documentArray, für die Verwendung in DriveApp, mit dem DriveApp Verfahren zur Bestimmung der Datei greifen, anstatt das Dokument von DocumentApp sollte

... 

    doc.saveAndClose(); 
    documentArray.push(DriveApp.getFileById(docid)); 

} 

bearbeiten arbeiten: addFile

for (i in documentArray) { 

    folder.addFile(documentArray[i]) 

} 
+0

Danke, wie würden Sie die Dokumente in documentArray in den OUTPUT-Ordner hinzufügen? – user61629

+0

Der Rest Ihres Codes sollte so funktionieren wie er ist; Ich habe 'folder.addFile (documentArray [i])' beim Testen verwendet –

+0

Danke, es ist sehr schwer zu debuggen, wenn Sie ein Formular verwenden. – user61629

Verwandte Themen