GCP/Apps Script
Apps Script로 Google Forms의 Dropdown 항목을 Google Sheets에서 가져온 데이터로 생성하기
whistory
2023. 6. 9. 10:38
반응형
Google Forms의 dropdown 항목을 생성해보았다.
Apps Script로 Google Forms 항목(item) 추가하기
Apps Script로 Google Sheets 를 위주로 글을 쓰다가, Google Forms에 대해서도 한번 써보려고한다. 제공되는 Form class docs를 기반으로 작성해본다. Class Form | Apps Script | Google for Developers 이 페이지는 Cloud Trans
whiseung.tistory.com
dropdown 항목들을 Google sheets에서 가져와 뿌려줄 수는 없을까?
Google Sheets 에서 가져온 데이터로 Google Froms에서 dropdown 생성하기
const ITEM_TITLE = '가장 좋아하는 동물은?';
const ITEM_DESC = '가장 좋아하는 동물을 선택하세요';
function setDropdownItemFromGoogleSheet() {
const SHEET_ID = "GOOGLE_SHEET_ID";
const SHEET_NAME = "GOOGLE_SHEET_NAME";
const sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName(SHEET_NAME);
const values = sheet.getRange(`A1:A${sheet.getLastRow()}`).getValues().flat();
const form = FormApp.getActiveForm();
const item = form.addListItem();
item.setTitle(ITEM_TITLE);
item.setHelpText(ITEM_DESC);
item.setChoiceValues(values);
console.log(values);
}
Google Sheets 에서 가져온 데이터로 Google Froms에서 dropdown 수정(갱신)하기
Chicken 이라는 항목을 추가해본다.
원래는 item의 id를 기존으로 삭제를 하는방법을 사용해야 하나,
여기서는 item title 과 item type 을 기준으로 item id를 가져와
dropdown 내용을 수정한다.
function setDropdownItemFromGoogleSheetRefresh() {
const SHEET_ID = "GOOGLE_SHEET_ID";
const SHEET_NAME = "GOOGLE_SHEET_NAME";
const sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName(SHEET_NAME);
const values = sheet.getRange(`A1:A${sheet.getLastRow()}`).getValues().flat();
const form = FormApp.getActiveForm();
const items = form.getItems();
var itemId;
for ( i in items ) {
if ( items[i].getTitle() == ITEM_TITLE && tems[i].getType() == "LIST") {
itemId = items[i].getId();
}
}
var item = form.getItemById(itemId);
item.asListItem().setChoiceValues(values);
console.log(values);
}
form 에서 item을 가져와,
가져온 item 을 as~~~ 로 casting 하여 수정을 진행한다.
const form = FormApp.getActiveForm();
var item = form.getItemById(itemId);
item.asListItem().setChoiceValues(values);
반응형