GCP/Apps Script

Apps Script로 Google Forms와 Google Sheets 연동하기

whistory 2023. 6. 7. 16:57
반응형

 

 

 

Google Forms로 제출된 값들을 Google Sheets에서 확인할 수 있도록 연결해본다.

 

새로운 Google Sheets를 생성해 연결하는 방법과,

기존에 존재하는 Google Sheets와 연결하는 두가지 방식이 존재한다.

 

 

새로운 Google Sheets를 생성 해 연결하기

function setForm() {
   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();

   form.setTitle("Form Test Title").setDescription("Form Test Description");

   // 모든 항목 삭제
   const items = form.getItems();
   for ( i in items ) {
      form.deleteItem(items[i].getIndex());   
   }

   // 항목 1 추가
   const itemName = form.addTextItem();
   itemName.setTitle('이름이 무엇인가요?');
   itemName.setRequired(true);

   // 항목 2 추가
   const itemBirth = form.addDateItem();
   itemBirth.setTitle('생일이 언제인가요?');
   itemBirth.setHelpText('생일을 입력하세요.');
   itemBirth.setRequired(true);

   // 항목 3 추가
   const itemAnimal = form.addListItem();
   itemAnimal.setTitle('가장 좋아하는 동물은?');
   itemAnimal.setHelpText('동물을 선택하세요');
   itemAnimal.setChoiceValues(values);

   form.removeDestination();
   // 연결할 신규 Google Sheets 생성
   const connectSheet  = SpreadsheetApp.create("connectForms");
   form.setDestination(FormApp.DestinationType.SPREADSHEET, connectSheet.getId());
}

기존에 있는 Google Sheets에 연결하기

function setForm() {
   const CONNECT_SHEET = "연결할_GOOGLE_SHEET_ID";
   const SHEET_ID      = "데이터가_존재하는_GOOGLE_SHEET_ID";
   const SHEET_NAME    = "데이터가_존재하는_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();

   form.setTitle("Form Test Title").setDescription("Form Test Description");

   // 모든 항목 삭제
   const items = form.getItems();
   for ( i in items ) {
      form.deleteItem(items[i].getIndex());   
   }

   // 항목 1 추가
   const itemName = form.addTextItem();
   itemName.setTitle('이름이 무엇인가요?');
   itemName.setRequired(true);

   // 항목 2 추가
   const itemBirth = form.addDateItem();
   itemBirth.setTitle('생일이 언제인가요?');
   itemBirth.setHelpText('생일을 입력하세요.');
   itemBirth.setRequired(true);

   // 항목 3 추가
   const itemAnimal = form.addListItem();
   itemAnimal.setTitle('가장 좋아하는 동물은?');
   itemAnimal.setHelpText('동물을 선택하세요');
   itemAnimal.setChoiceValues(values);

   form.removeDestination();
   form.setDestination(FormApp.DestinationType.SPREADSHEET, CONNECT_SHEET));
}

 

 

생성된 Google Forms 항목들

 

 

 

연결된 Google Sheets 화면

반응형