2017-07-19 104 views
1

我有一堆表單文件,我想用FormResponse 類訪問。我已經設法通過所有的文件顯示迭代代碼 這裏:通過文件迭代獲取Google腳本的表單ID

var folder = DriveApp.getFolderById('abcdefgh123456'); 
var files = folder.getFiles(); 

    while (files.hasNext()) { 
    var str = files.next().getName(); 

    if (/^Approval\sfor/.test(str)) { // test "Approval for" string 

    Logger.log('*** This is Approval file : ' + str); 
    var file = files.next(); 
    var fileId = file.getId(); 
    Logger.log('*** fileID : ' + fileId); 
    var file = DriveApp.getFileById(fileId); 

    // var form = FormApp.openById(fileId); //ERROR Invalid ID 
    } 
} 

但對我的生活,我不能夠訪問窗體對象。我相信這是一個簡單的答案。也許我的概念還不強。任何幫助表示讚賞。謝謝!

回答

1

好吧,我終於找到了解決方案。這似乎是我可以 不訪問表單對象的原因是由於id與 文件本身的不匹配。聲明「var file = files.next();」應該在「while(files.hasNext())」下添加 。

while (files.hasNext()) { 

    var file = files.next(); 
    var str = file.getName(); 

    if (/^Approval\sfor/.test(str)) { // test "Approval for" string 

    Logger.log('*** This is Approval file : ' + str); 
    var fileId = file.getId(); 
    Logger.log('*** fileID : ' + fileId); 
    var file = DriveApp.getFileById(fileId); 
    var form = FormApp.openById(fileId); //Works now 

    } 

}