2017-12-12 3 views
0

私はテンプレートとフォーム情報の差し込み印刷を実行し、その文書を電子メールで送信するプロジェクトに取り組んでいます。ドキュメントを「OUTPUT」というドライブフォルダに保存するように変更する必要があります。私の作業元のコードに基づいて私は持っています:GASを使用して既存の文書をフォルダに保存

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

    } 

マージされた 'doc'ファイルは配列に保存されます。ライン「folder.addFile(DOCFILE)は、」失敗し、ファイルがOUTPUTに作成されていないが

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) 


} 

} 

:次の私は、文書の配列をループしてみました。しかし、SaveandClose関数のために私が推測しているTemplateフォルダに保存されています。これをどうやって動かすことができますか?

答えて

1

... 

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

} 

編集を動作するはずのファイルをつかんではなく、DocumentAppからドキュメントを使用するDriveApp方法を使用して、DriveApp内で使用するために、documentArrayにファイルを追加:ADDFILE

for (i in documentArray) { 

    folder.addFile(documentArray[i]) 

} 
+0

ありがとう、どのようにdocumentherayのドキュメントをathe OUTPUTフォルダに追加しますか? – user61629

+0

残りのコードはそのまま動作します。テスト時に 'folder.addFile(documentArray [i])'を使用しました –

+0

フォームを使用しているときに非常に困難にデバッグしてくれてありがとうございます。 – user61629

関連する問題