Skip to content

Instantly share code, notes, and snippets.

@egoing
Created August 11, 2017 10:05
Show Gist options
  • Save egoing/20de97ee243e163272cde3db7e09bda8 to your computer and use it in GitHub Desktop.
Save egoing/20de97ee243e163272cde3db7e09bda8 to your computer and use it in GitHub Desktop.
구글 스프래드쉬트를 활용한 추첨
function shuffle(a) {
var j, x, i;
for (i = a.length; i; i--) {
j = Math.floor(Math.random() * i);
x = a[i - 1];
a[i - 1] = a[j];
a[j] = x;
}
}
function draw(){
// 당첨 여부를 표시하는 셀
const MARKCELL = 'G';
// 당첨자의 수
const SELECT_NUL = 1
// 컨텐츠가 시작되는 행의 수
const CONTENT_START_ROW = 2;
const CONTENT_RANGE = 'A2:F4';
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange(CONTENT_RANGE);
var data = dataRange.getValues();
var dataArray = [];
for (var i in data) {
var row = data[i];
row.unshift(i);
dataArray.push(row);
}
shuffle(dataArray);
dataArray.splice(SELECT_NUL);
// 그 중에 가장 앞에 있는 80명을 뽑아라.
for(person in dataArray){
var email = dataArray[person][4];
var name = dataArray[person][3];
var id = dataArray[person][0];
Logger.log(email+','+name+','+id);
// 그리고 그들에게 이메일을 보내라.
//MailApp.sendEmail(email, "당첨 되었습니다. 축하해요.", name+"님 안녕하세요. 축하드려요. ^^");
// 당첨된 사람이 누군인지 표에 표시해라.
SpreadsheetApp.getActiveSheet().getRange(MARKCELL+(CONTENT_START_ROW+Number(id))).setValue('당첨');
//Logger.log('H'+(1+Number(id)));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment