[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.length > num; num++) { 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.length > num; num++) { console.log( cells[num].value ); } } ); }); |
# 출력 결과
node google_sheets_read.js |
위와같이 getCells( )를 사용하는 방법을 알아보았다.
위에서 한번 설명했듯이 생성한 데이터의 수정을 위해서는 getCells( )를
사용할 수 밖에 없기 때문에, 사용방법을 꼭 숙지해 두는것이 좋다.
'Node.js > Google Spread Sheet' 카테고리의 다른 글
[Node.js] googleapis 사용한 Googel Spread Sheet 연동 (0) | 2020.08.26 |
---|---|
[Node.js] Google Spread Sheet 수정 및 삭제하기 (5) | 2019.06.11 |
[Node.js] Google Spread Sheet에 데이터 입력하기 (0) | 2019.06.11 |
[Node.js] Google Spread Sheet 연동하기 (2) | 2019.06.10 |