본문 바로가기
설문지 작성 google apps script #코드스니핏
function createNewForm(_title) {

  console.log(_title);

  var form = FormApp.create(_title);
  // 새로 생성된 Form의 ID 가져오기
  var formId = form.getId();
  // 새로 생성된 Form의 URL 가져오기
  var formUrl = form.getPublishedUrl();
  // 편집 URL 가져오기
  var editUrl = form.getEditUrl();
  Logger.log('Form ID: ' + formId);
  Logger.log('Published URL: ' + formUrl);
  Logger.log('Edit URL: ' + editUrl);

  // // 헤더 이미지 설정
  // var imageUrl = ""; // 이미지 URL을 여기에 입력하세요
  // form.setHeaderImage(UrlFetchApp.fetch(imageUrl));

  // // 색상 테마 설정
  // var color = "#4285F4"; // 원하는 색상 코드를 입력하세요
  // form.setThemeColor(color);
  
  
  return form;
}

function createSurveyFromSheet() {
  // 현재 스프레드시트 가져오기
  var spreadsheetUrl = ".../edit";
  var ss = SpreadsheetApp.openByUrl(spreadsheetUrl);
  Logger.log('SpreadSheet Origin : ' + spreadsheetUrl);

  var nameSheet = '학생정보';
  nameSheet = '아이디어(학부)';
  const sheet = ss.getSheetByName(nameSheet);

  // var nameForm = '상호평가';
  var nameForm = nameSheet;
  Logger.log('Form title: ' + nameForm);  // 이 줄 추가

  const googleForm = createNewForm(nameForm);
  // 새 설문지 생성
  // var form = FormApp.create('으하!');
  var form = googleForm; //.create('으하!');

  // 데이터 범위 지정
  var data = sheet.getDataRange().getValues();
  
  // 각 행을 순회하며 설문 문항 생성
  for (var i = 1; i < data.length; i++) {
    var questionType = data[i][0];
    var questionTitle = data[i][1];
    var questionDescription = data[i][2];
    var isRequired = data[i][3].toString().toLowerCase() === 'true'; // 필수 여부
    var options = data[i].slice(4).filter(String); // 옵션 시작 열 변경
    
    var item;
    
    switch(questionType) {
      case '객관식':
        item = form.addMultipleChoiceItem();
        item.setTitle(questionTitle)
            .setHelpText(questionDescription)
            .setChoiceValues(options)
            .setRequired(isRequired);
        break;
      case '체크박스':
        item = form.addCheckboxItem();
        item.setTitle(questionTitle)
            .setHelpText(questionDescription)
            .setChoiceValues(options)
            .setRequired(isRequired);
        break;
      case '단답형':
        item = form.addTextItem();
        item.setTitle(questionTitle)
            .setHelpText(questionDescription)
            .setRequired(isRequired);
        break;
      case '장문형':
        item = form.addParagraphTextItem();
        item.setTitle(questionTitle)
            .setHelpText(questionDescription)
            .setRequired(isRequired);
        break;
      case '척도형':
        item = form.addScaleItem();
        item.setTitle(questionTitle)
            .setHelpText(questionDescription)
            .setBounds(1, 5)
            .setRequired(isRequired);
        break;
      // 필요에 따라 다른 문항 유형 추가
    }
  }
}

댓글