메뉴 건너뛰기

app

[GAS] 설문지가 여러개 있는 시트이름 확인 및 동적 폼 셀렉트 리스트

lispro062015.12.27 16:42조회 수 1574댓글 0

    • 글자 크기
function onFormSubmit(e) {
  var sheet = e.range.getSheet();
  var sheetName = sheet.getSheetName();
  var sheetId = sheet.getSheetId();
}

시트 이름이나 아이디를 확인해 설문지 제출시 트리거를 사용할 수 있다.
a 설문지에 의해 a 시트가 업데이트 되면 afunction을 동작하도록 할 수 있는 것이다.


아래는 폼에서 셀렉트 리스트를 동적 업데이트 하는 코드이다.

불필요 배열 값 제거 함수들도 포함 되었다.

function removeArrayDuplicate(array) {
var a = {};
for(var i=0; i <array.length; i++){
if(typeof a[array[i]] == "undefined")
a[array[i]] = 1;
}
array.length = 0;
for(var i in a)
array[array.length] = i;
return array;
}
function cleanArray(actual){
  var newArray = new Array();
  for(var i = 0; i<actual.length; i++){
      if (actual[i]){
        newArray.push(actual[i]);
    }
  }
  return newArray;
}
function doGet() {
  var ss = SpreadsheetApp.openById("문서명");
  
  var _code_ = ss.getSheetByName('_CODE_');
  var teams = _code_.getRange(2, 3, _code_.getLastRow(), 1).getValues();
  var officer = _code_.getRange(2, 2, _code_.getLastRow(), 1).getValues();
  var job = _code_.getRange(2, 1, _code_.getLastRow(), 1).getValues();
  
  var form = FormApp.openById('폼이름');
  var item1 = form.addListItem();
  for(i=form.getItems().length-2;i>-1;i--){
    form.deleteItem(i);// 일단 폼 아이템들을 모두 지워버리고 다시 만든다. 개별 리스트를 지우고 업데이트할 수도 있지만, 효율적이지 않을 때가 있다. 
  }
  
  item1.setTitle('제목1').setChoiceValues(removeArrayDuplicate(teams));
  var item2 = form.addListItem();
  item2.setTitle('제목2').setChoiceValues(removeArrayDuplicate(officer));
  var item3 = form.addListItem();
  item3.setTitle('제목3').setChoiceValues(removeArrayDuplicate(job));
  var item4 = form.addTextItem();
  item4.setTitle('제목4');
  var item5 = form.addTextItem();
  item5.setTitle('제목5');
}
lispro06 (비회원)
    • 글자 크기

댓글 달기

lispro06
2015.05.15 조회 1632
lispro06
2015.05.15 조회 1600
lispro06
2015.05.15 조회 2492
lispro06
2014.08.16 조회 1739
lispro06
2014.02.08 조회 3979
lispro06
2013.12.11 조회 1648
lispro06
2013.12.10 조회 2953
suritam9
2013.12.06 조회 2249
suritam9
2013.12.02 조회 3424
suritam9
2013.11.30 조회 2139
suritam9
2013.11.26 조회 1626
suritam9
2013.08.23 조회 7292
suritam9
2013.08.23 조회 1826
suritam9
2013.06.28 조회 2313
첨부 (0)
위로