2017-05-09 82 views
0

我有一個連接到Google工作表的Google表單。問題是我的表格中沒有通過表單提交的現有數據,所以我希望能夠從表單中獲取數據,併爲表單中未填寫的每行提交表單。我可以使用腳本編輯器來做到這一點嗎?使用Google工作表數據創建表單響應

編輯:這是我現在的代碼。現在,每個表單提交,但該領域說「未定義」

​​[設置] 1 [功能]

+0

歡迎堆棧溢出。是的,您可以使用Apps腳本來做到這一點。一個很好的問題通常包括一些代碼,並解釋你所嘗試的。 –

+0

你的「已解決」是否意味着你現在對這個問題有了答案?然後張貼它來幫助別人。如果您覺得不值得努力,請刪除您的問題。 – Yunnosch

回答

0

這裏是一個正確的提交形式在我的電子表格數據的每一行代碼。名字在列A中,列B中的姓氏等。當您在工作表上調用「sheet.getRange()」時,需要確保在使用此數據創建表單響應之前使用「.getValues()」 。 注意:我的示例代碼僅提交3-8行的表單。

var ss = SpreadsheetApp.getActive(); 
var sheet = ss.getSheetByName("Data"); // grabs sheet 

var formUrl = ss.getFormUrl();    
var form = FormApp.openByUrl(formUrl); // grabs the connected form 
var questions = form.getItems(); 

// Getting the fields of the form questions 
var firstName = questions[0].asTextItem(); 
var lastName = questions[1].asTextItem(); 
var emergency = questions[2].asTextItem(); 
var email = questions[3].asTextItem(); 
var cell = questions[4].asTextItem(); 
var specialty = questions[5].asTextItem(); 


var dataFirstNames = sheet.getRange("A3:A10").getValues(); 
var dataLastNames = sheet.getRange("B3:B10").getValues(); 
var dataEmergencyNumbers = sheet.getRange("C3:C10").getValues(); 
var dataEmails = sheet.getRange("E3:E10").getValues(); 
var dataCellNumbers = sheet.getRange("F3:F10").getValues(); 
var dataSpecialties = sheet.getRange("G3:G10").getValues(); 


    function myFunction() { 

    for(i = 0; i < 8; i++) { 

     var formResponse = form.createResponse(); 

     var d1 = dataFirstNames[i]; 
     var r1 = firstName.createResponse(d1); 

     var d2 = dataLastNames[i]; 
     var r2 = lastName.createResponse(d2); 

     var d3 = dataEmergencyNumbers[i]; 
     var r3 = emergency.createResponse(d3); 

     var d4 = dataEmails[i]; 
     var r4 = email.createResponse(d4); 

     var d5 = dataCellNumbers[i]; 
     var r5 = cell.createResponse(d5); 

     var d6 = dataSpecialties[i]; 
     var r6 = specialty.createResponse(d6); 

     formResponse.withItemResponse(r1); 
     formResponse.withItemResponse(r2); 
     formResponse.withItemResponse(r3); 
     formResponse.withItemResponse(r4); 
     formResponse.withItemResponse(r5); 
     formResponse.withItemResponse(r6); 

    formResponse.submit(); 
} 

}

相關問題