오랜만의 포스팅입니다.
만들게 된 배경
구글 설문지를 만들 일이 생겼다. 그런데 동일한 질문의 설문을 40개 가까이 만들어야 했다.
심지어 질문을 바꾸게 되면서 40개의 질문들을 하나하나 수정하자니.. 너무나도 답답하여..
만든 기능
코딩으로 구글 설문지를 만드는 방법을 소개한다!
무려 for문도 쓸 수 있고
변수도 선언해서 이것 저것 만질 수 있다.
심지어 본인의 경우 사진을 올린 뒤 더 좋은 사진을 고르는 설문이었기에 해당 사진들도 자동으로 넣어주는 코드를 짰다.
본격적인 설명을 시작해보자.
Step 1.
우선 모든 코딩은 Apps Script를 사용하였다.
22년 5월 쯔음부터인가 Google Docs API가 공개되었다.
= 코딩으로 해결 할 수 있다.
설문지를 만들고, 오른쪽 위의 땡땡땡을 눌러 스크립트 편집기를 연다.
이제 코딩을 할 준비가 되었다.
Step 2.
우선 설문에 들어갈 사진들을 폴더를 하나 만들어 둔 뒤 거기에 저장해두었다.
해당 사진들은 for문을 통해 가져와질 예정이다.
Step 3.
냅다 코드를 보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
function myFunction() {
// Create a new form, then add a checkbox question, a multiple choice question,
// a page break, then a date question and a grid of questions.
var form = FormApp.create('Diffusion_already_user_study_final_final');
// var form = FormApp.openById('EXIST FORM ID')
var question_num = 1;
var max_num = 41;
// ================================= Start!! =================================
var main_decription = `[설문조사] DIFFUSION MODELS ALREADY HAVE A SEMANTIC LATENT SPACE
We plan to conduct the user study for the results of our research.
이어지는 설문내용들..
`
form.setTitle('[User study] Diffusion model')
.setDescription(main_decription)
.setConfirmationMessage('시간을 들여 설문에 참여해 주셔서 감사합니다. Thanks for responding!')
// ================================= Smiling =================================
var folder_id = '사진이 저장된 folder의 id'
var break_first_description = `이어질 설문은...
중간에 들어갈 여러 설명들`
var question_description = `중간에 들어갈 .`
var question_1 = `어떤 이미지의 퀄리티가 더 좋다 생각되시나요? (노이즈가 적음, 선명함)
Which image quality do you think is better? (less noise, clarity)`
var question_2 = `어떤 이미지가 자연스럽게 웃고 있다 생각하시나요?
Which image do you think is "Smiling" naturally?`
var question_3 = `두 기준을 종합했을 때 어떤 이미지가 더 낫다고 생각하시나요?
Which image do you think is better as considering above two evaluation criteria?`
var question_4 = `어떤 이미지가 `
var title_str = 'Smiling(웃음)'
var image_title_str = '웃도록 만든 사진입니다.'
form.addPageBreakItem()
.setTitle(title_str)
.setHelpText(break_first_description)
// Smiling
var files = DriveApp.getFolderById(folder_id).getFiles();
while(files.hasNext()){
file = files.next();
var img = DriveApp.getFileById(file.getId())
var prefix = '('+ question_num +'/'+ max_num +') ';
form.addPageBreakItem()
.setTitle(prefix+title_str)
.setHelpText(question_description) //
form.addImageItem()
.setTitle(image_title_str)
.setImage(img);
var item = form.addMultipleChoiceItem();
item.setTitle(prefix+question_1)
.setChoices([
item.createChoice('1'),
item.createChoice('2')
])
.setRequired(true)
var item = form.addMultipleChoiceItem();
item.setTitle(prefix+question_2)
.setChoices([
item.createChoice('1'),
item.createChoice('2')
])
.setRequired(true)
var item = form.addMultipleChoiceItem();
item.setTitle(prefix+question_3)
.setChoices([
item.createChoice('1'),
item.createChoice('2')
])
.setRequired(true)
question_num = question_num + 1;
}
Logger.log("Smiling done")
|
cs |
설명을 해보겠다.
var form = FormApp.create('Diffusion_already_user_study_final_final');
이 부분은 새로 설문지를 만드는 부분이다.
만약 기존에 만들어진 설문지에 추가하고 싶다면 밑에 주석 쳐둔 코드를 사용하면 된다.
.setDescription(main_decription)
.setConfirmationMessage('시간을 들여 설문에 참여해 주셔서 감사합니다. Thanks for responding!')
var files = DriveApp.getFolderById(folder_id).getFiles();
-> id를 가지고 폴더에 접근해서 해당 폴더 안에 있는 파일들을 가져온다. (이미지들이다.)
while(files.hasNext()){
file = files.next();
var img = DriveApp.getFileById(file.getId())
저기 있는 실행 버튼을 눌러 실행하면 코드가 돌면서 설문지가 만들어진다.
이런 화면이 메인화면이고,
이런게 중간에 생기고,
이런 결과가 나온다.
동일한 질문을 반복문으로 넣었고,
문제번호는 코드로 넣어주었다.
자, 본인이 원하는 형태의 설문지가 분명 있을 것이다.
https://developers.google.com/apps-script/reference/forms
여기서 찾으면 된다.
잘 정리되어있고, 조금만 찾아보면 원하는 형태의 설문을 코딩을 통해 만들 수 있을 것이다.
모두가 노가다로부터 해방되길 바라며 짧은 글을 마친다.
'대학원 생활 꿀팁' 카테고리의 다른 글
VScode Vim에서 ctrl c / ctrl v 복사 붙여넣기로 만들기 (2) | 2022.03.28 |
---|---|
논문 웹에서 열기 [ar5iv] (0) | 2022.03.25 |
Latex 기호 총정리 (0) | 2022.03.08 |
논문 영단어 검색기능 사용 꿀팁 (feat. 파파고) (0) | 2021.12.28 |
[Chrome extension] Arxive _ arxiv에서 받는 논문 제목으로 다운되게 하기 - (1) (0) | 2021.08.26 |