본문 바로가기

99_해설과 해석

[Google Apps Script] 2. 기본 문법

 

var app = spreadsheetApp;
var activesheet = app.getActiveShpreadsheet().getActiveSheet(); // 현재 열결된 스프레드시트에서 활성화된 시트(탭)을 자져온다

var readArr = activeSheet.getRange("A1:I100").getValues(); // 긁어 올 좌측 상단: 우측 하단(즉, 사각 모양으로 선택됨)을 정의. 배열 형태로 데이터를 가져옴

varwriteArr = sumArr(readArr); sumArr()는 커스텀 메소드로 이를테면, 한 가지 sum을 구하거나 avg를 구하는 메소드로 배열을 리턴한다고 생각하자

activeSheet.getRange("J1:J100").setValues(); // 위에서 구한 sum, avg 등의 배열을 스프레트시트에 write한다

위 객체 및 메소드는 많이 활용되므로 필수로 알아야 한다. 하지만 여기서 문제점은 외부에서API호출을 했을 때, 시리얼라이징을 해줘야 하는 것이다. 즉 JSON형태나 TEXT 등의 형태로 보내줘야 다른 플랫폼에서 데이터를 가공하여 활용할 수 있다는 것이다. 이 중에서 JSON이 가장 흔하게 사용되므로, JSON 으로 형태를 바꿔서 response 해줘야 한다

* JSON(제이슨, JavaScript Object Notation) 

이름 학번 생년월일
김영희 201932 2000-5-2
김철수 201933 2000-8-14
... ... ...

위의 내용을 JSON은 어떻게 표현되어야 할까? 그건 가공하기 나름이다. 근데 보통 다음과 같이 될 것이다

{
  "students":
       [
        {"이름":"김영희", "학번":"201932", "생년월일":"2000-5-2"},
        {"이름":"김철수", "학번":"201933", "생년월일":"2000-8-14"},
         ...
       ]
}

그러므로, 위 처럼 가공을 하려면,
1. 첫행의 이름들을 모구 긁어온 다음
2. 첫행을 제외한 모든 데이터를 긁어와서, 각 순서에 맞게 데이터를 일치시켜서 JSON형태로 만들어 줘야 한다

혹은
1. 첫열, 첫행의 이름을 가져온 후, 첫열/첫행을 제외한 첫 열의 모든 데이터를 만들고
2. 그 다음열, 그 첫행의 이름을 가져온 후, 해당열 첫행을 제외한 해당 열의 모든 데이터를 가져와서 JSON형태를 만들어 주고
3. 끝의 열까지 반복해 줄 수도 있다

Object(Array 포함)을 JSON 형태로 바꾸기 위해서는 stringify()를 사용하면 된다

var myJsonString = JSON.stringify(yourArray);

 

JSON형태를 자바스크립트에서 다룰 수 있게(데이터 접근을 할 수 있도록) 하려면 parse()를 사용할 수 있다

var myJson = JSON.parse(jsondata);
var mName = myJson["name"];
반응형