반응형
Google Forms의 dropdown 항목을 생성해보았다.
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);
반응형
'GCP > Apps Script' 카테고리의 다른 글
Google Sites에서 Apps Script로 배포한 webapp 으로 파라미터 넘기기 (0) | 2023.06.15 |
---|---|
Apps Script로 장 종료 후 특정 주식의 종가 정보 카카오톡으로 전송하기 (0) | 2023.06.12 |
Apps Script로 입력한 검색어를 위키피디아에서 가져와 보여주기 (0) | 2023.06.08 |
Apps Script로 Google Forms 항목(item) 삭제하기 (0) | 2023.06.08 |
Apps Script로 Google Forms와 Google Sheets 연동하기 (0) | 2023.06.07 |