[Node.js] Google Spread Sheet의 데이터 가져오기[Node.js] Google Spread Sheet의 데이터 가져오기

Posted at 2019. 6. 10. 18:07 | Posted in Node.js/Google Spread Sheet
반응형








※ 해당 포스팅 google-spreadsheet 2.0.7 버전을 기준으로 작성되었습니다.

    google-spreadsheet 3 버전 이후버전부터는 실행에 앞서 에러가 발생합니다.

    추후 수정 예정이오니 해당 포스팅을 참고하시는 분은 이점을 꼭 기억해 주시기 바랍니다.

    ( google-spreadsheet 2.0.7 버전의 경우 2020-05-15일 기준으로 사용에 문제는 없습니다. )





노드.js의 google-spreadsheet 모듈로 스프레드 시트의 데이터를 읽는 방법은.


크게 getRows( )와 getCells( ) 를 이용하는 방법이 존재한다.


개인적인 생각으로는 단순히 데이터를 읽어들이는것은 getRows( )가 편하지만


셀(Cell)을 수정하거나 삭제하는경우의 수는 getCells( )를 사용할 수 밖에 없기 때문에.


두 방법 모두 같이 사용하는 방법을 알아두는것이 좋다.










■ 열(Row)을 기준으로 구글 스프레드 시트의 데이터 읽어오기




# 스프레드 시트





# 소스 코드

 google_sheets_read_getrows.js

const googleSpreadsheet = require("google-spreadsheet");

const creds = require("./서비스 계정 키.json");

const doc = new googleSpreadsheet("구글 스프레드 시트 ID");


doc.useServiceAccountAuth(creds, function(err) {

doc.getRows(

  1 // 시작할 시트의 인덱스(인덱스는 1부터 시작함)

, {

  "offset" : 1    // 시작할 행의 갯수

, "limit" : 5    // 한번에 읽을 최대 행의 갯수 ( 최상위 1번 열은 포함하지 않는다. )

               , "orderby" : "나이"          // 정렬 기준 최상위 1번 열(row)의 제목(Key값)을 기준으로 한다.

               , "reverse" : true             // true : 내림차순, false : 오름차순(기본값)


                          // 연산자를 통해 검색 기준을 생성한다.

         // 예) 제목(Key값) > 조건 and 제목(Key값) < 조건

               , "query" : "나이 >= 20 and 나이 < 30"

}

, function(err, rows) {

// console.log(rows);

for(var num = 0; rows.lengthnumnum++) {


console.log( rows[num].활동명 + " / " + rows[num].별명 );

}

}

);

});





# 출력 결과

 node google_sheets_read_getrows.js





위와같이 getRows( )를 통해서 데이터를 읽어오는 것을 해 보았다.


query 속성을 통해 검색 값에 제한을 줄 수 있다는 것이 매우 장점이지만.


아쉽게도 getRows( )를 통해서 가져온 (Cell)의 데이터를 수정할 수는 없다.


getRows( )는 조회용으로만 사용하는것을 추천한다.










■ 셀(Cell)을 기준으로 구글 스프레드 시트의 데이터 읽어오기





# 스프레드 시트






# 소스 코드

 google_sheets_read.js

const googleSpreadsheet = require("google-spreadsheet");

const creds = require("./서비스 계정 키.json");

const doc = new googleSpreadsheet("구글 스프레드 시트 ID");


doc.useServiceAccountAuth(creds, function(err) {

doc.getCells(

  1 // 시작할 시트의 인덱스(인덱스는 1부터 시작함)

, {

  // min-row와 min-col은 지정하지 않으면 기본값이 1로 지정되어

  // 첫번째(A1)셀부터 값을 읽어들인다. 

  "min-row" : 1 // Cell의 최소 가로 범위

, "min-col" : 1 // Cell의 최소 세로 범위

  // max-row와 max-col은 필수적으로 기입해 주는것이 좋다

  // return-empty 설정이 true인경우 무한루프에 빠질 수 있다.

, "max-row" : 3 // Cell의 최대 가로 범위(필수)

, "max-col" : 3      // Cell의 최대 세로 범위(필수)

  // return-empty이 false인 경우 빈 셀을 포함하지 않는다. 

  // true이면 빈 셀을 포함하기에 반드시 max-row, max-col을 설정해야 한다.

, "return-empty" : true

}

, function(err, cells) {


for(var num = 0; cells.lengthnumnum++) {


console.log( cells[num].value );

}

}

);

});





# 출력 결과

 node google_sheets_read.js




위와같이 getCells( )를 사용하는 방법을 알아보았다.


위에서 한번 설명했듯이 생성한 데이터의 수정을 위해서는 getCells( )를


사용할 수 밖에 없기 때문에, 사용방법을 꼭 숙지해 두는것이 좋다.





반응형
//