1
如何從Google電子表格中將信息重新導入Google表單以更新信息?將Google Spreadsheets信息轉換爲Google表單
我希望能夠將我已經通過Google表單提交的信息重新提交到表單中以更新信息。我知道我可以去編輯電子表格,但爲了我的目的,通過表單可以更容易地完成。我一直找不到能讓我做到這一點的腳本。有沒有人有什麼建議?
如何從Google電子表格中將信息重新導入Google表單以更新信息?將Google Spreadsheets信息轉換爲Google表單
我希望能夠將我已經通過Google表單提交的信息重新提交到表單中以更新信息。我知道我可以去編輯電子表格,但爲了我的目的,通過表單可以更容易地完成。我一直找不到能讓我做到這一點的腳本。有沒有人有什麼建議?
您可以在Apps腳本中使用FormApp訪問表單對象進行更新。
下面是一個更新「從列表中選擇」對象的示例。如果您想在每次提交後更新表單,則可以使用基於容器的觸發器「On form submit」調用updateList函數。
function updateList(){
var form = FormApp.openById(formId);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
// get the range of values to update in the form
var data = sheet.getRange(2,1,sheet.getLastRow(),sheet.getLastColumn()).getValues();
var listItemsToAdd = [];
for(s in data){
if(logic to define if to add to the form){
listItemsToAdd.push(data[s][0]);
}
}
// get all the list items in the form
var list = form.getItems(FormApp.ItemType.LIST);
// grab the first list item in the array of the form's list items
var item = list[0].asListItem();
// set the options to the array just created
item.setChoiceValues(listItemsToAdd);
}
但請不要使用'for(s in data)'循環一個Array。 –
@Cyrus Loree:好的,但我想問你一個關於這個問題的問題;如何使用導航類型在for循環中設置值? ([像這個例子](https://developers.google.com/apps-script/reference/forms/choice)) –
我認爲這是一個不同的對話。如果您發佈了一個新問題,我會很樂意詳細介紹。簡短的答案是您傳遞分頁符項而不是PageNavigationType枚舉。例如。 var anotherPage = form.addPageBreakItem()。setTitle('Another page to go to'); ... item.createChoice('My New Page',anotherPage),item.createChoice('Dogs',FormApp.PageNavigationType.RESTART) ]); –