본문 바로가기

개발 및 커리어

google apps script 기본

기본 

javascript 기반의 언어이긴 하지만 js 함수는 대체로 사용하지 못한다. 

구글에서 제공하는 라이브러리를 주로 사용해야한다. 

주로 js는 브라우저단에서 실행되지만 gas는 서버단에서 실행되기때문. 

ex) alert → Browser.msgBox 


msgBox에는 버튼도 추가할 수 있는대 

Browser.msgBox(title, text,Browser.Buttons.YES_NO); 

title은 생략 가능하다. 

YES_NO에는 OK, OK_CANCEL, YES_NO, YES_NO_CANCEL 이 가능하다. 


inputBox를 통해 텍스트를 입력받을 수도 있다. 

기본적인 형식은 msgBox와 동일하다. 

Browser.inputBox(title, text,Browser.Buttons.YES_NO); 

title은 생략 가능하다. 

OK_CANCEL 을 일반적으로 사용한다. 


Logger.log(message)로 로그를 남길 수 있다. 


여러가지 간단한 이벤트 핸들러(simple event handler)가 존재하는대, 

onOpen(event) 

onEdit(event) 

onInstall(event) 

onFormSubmit(event) 가 존재한다. 


유저가 직접 이벤트를 작성하는것도 가능한대 

이를 installable event handlers 라고 한다. 

function onMyEdit(e) 이런식으로 선헌 후 사용하면 된다. 

e는 event 변수다. 


프로젝트를 공개한 후, 공개한 url을 통해 접속한 유저에대한 처리는 

doGet(e){ ...처리... } 에 정의한다. 


spread sheet: 

SpreadsheetApp 은 스프레드시트를 제어하기 위한 오브젝트다. 

  openById 로 원하는 스프레드시트 파일을 열 수 있다. 

  getSheetByName 로 지정된 파일 안의 시트를 지정할 수 있다. 

  getRnage 로 지정된 시트의 셀의 범위를 지정할 수 있다. 


변수 = 《Range》.getValue(); 

값을 얻음. 단, 범위일 경우 가장 왼쪽 위의 셀의 값을 가져온다. 

《Range》.setValue(value); 

값을 입력함. 단, 범위일 경우 모든 셀의 값을 바꾼다. 


변수 = 《Range》.getValues(); 

를 통해 범위 내의 모든 값을 2차원 배열로 받을 수 있다. 


변수 = 《Rnage》.getCell(행, 열); 

범위지정안에서 상대좌표로 셀을 호출한다. 

왼쪽 위 구석에 있는 셀은 1행 1열의 셀이 된다. 


변수 = 《Range》.getNumRows(); 

변수 = 《Range》.getNumColumns(); 

이 코드들은 각각 지정된 범위의 행수, 열수를 반환한다. 

범위의 행, 열의 크기를 알 수 있다. 


변수 = 《Range》.getRow(); 

변수 = 《Range》.getColumn(); 

각각 지정된 범위의 가장 왼쪽 위의 행, 열을 반환한다. 

범위의 시작 셀의 위치를 알 수 있다. 


format은 표시형식을 지정한다. 숫자에서 많이 사용한다. 

formula는 계산식을 지정한다. 


google drive 

DriveApp 은 구글 드라이브의 파일시스템을 제어하기 위한 오브젝트다. 

getFileById 로 id를 통해 파일을 지정할 수 있다. 

getFolderById 로 id를 통해 폴더(디렉토리)를 지정할 수 있다. 


createFile(name, content, mime type)으로 파일 생성 가능. 

content, mime type은 생략 가능 


《File/Folder》.makeCopy(); 

《File/Folder》.makeCopy(이름); 

으로 복사 가능. 이름을 지정하면 지정된 이름으로 복사됨. 


《Folder》.addFile(File 오브젝트); 

《Folder》.addFolder(Folder 오브젝트); 

파일 추가(복사랑 비슷) 


《Folder》.removeFile( File 오브젝트 ); 

《Folder》.removeFolder( Folder 오브젝트 ); 

삭제 


《File/Folder》.setTrashed(bool); 

휴지통으로 이동 


파일/폴더의 id 값을 못찾겠음. 


web 

HtmlTemplate 변수 = HtmlService.createHtmlOutputFromFile(html파일명); 

템플릿용 html파일 호출 


《HtmlTemplate》.dataFromServerTemplate={변수명:변수, ...}; 


return 《HtmlTemplate》.evaluate(); 

이 코드로 렌더링 된 html 코드가 출력된다. 

return을 바로 해주면 클라이언트 브라우저에 표시되게된다. 


《HtmlTemplate》.setTitle(타이틀); 

로 브라우저 창 타이틀 지정 가능. 


템플릿 html 안에서 <?= ?> 태그 안에 gas코드를 입력하면 그 결과가 

문자열상태로 출력된다. 


<? ?> 태그 사이에 gas 코드를 추가하게되면 

이 코드들이 실행되게 된다. 

ex) output.append(추가할 내용); 

추가할 내용이 html코드처럼 추가된다.

'개발 및 커리어' 카테고리의 다른 글

주요 라이센스 및 의무사항  (0) 2018.01.22