2017-12-12 1 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'파일은 배열에 저장됩니다. I는 다음과 문서 배열을 통해 루프 시도 :

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) 


} 

} 

라인 "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

감사합니다. 어떻게 athe OUTPUT 폴더에 documentArray에 문서를 추가 하시겠습니까? – user61629

+0

나머지 코드는 그대로 작동해야합니다. 테스트 할 때'folder.addFile (documentArray [i])'를 사용했습니다. –

+0

폼을 사용할 때 매우 어려운 디버깅을했습니다. – user61629

관련 문제