파이썬으로 구글 스프레드시트 편집 자동화하기 3단계 (Google sheets API)


본 글은 구글 스프레드시트를 파이썬을 이용해 편집하는 방법을 담은 문서이다.

무릇 Google spreadsheet는 이미 상당히 대중화되어 정말 많이 쓰이고 있는 tool이다. 게다가 공유가 자유롭고 즉각적으로 편집하고 접근할 수 있기에, 바야흐로 개인이 Excel을 사서 쓸 필요 자체가 없어진(…) 시대가 되었다고 할 수 있겠다.

​필자 역시 이걸로 가계부도 쓰고, 일할 때도 사용하고 다양하게 쓰고 있었는데…

​문득 그런 생각을 했다. 조건에 따라 특정 셀을 자동으로 업데이트하는 스크립트를 만들 순 없을까? 예컨대 내 카드에서 돈이 나가면 해당 항목을 가계부에다가 새로운 row로 추가해준다던가 하는 기능을 원할 수도 있고… 다양한 상황에서 편리하게 쓰일 수 있을 것이다.

​해서 이를 파이썬과 구글 클라우드 플랫폼, API을 이용하여 시도해보았다. 그 방법을 메모해보고자 이렇게 정리해보았다.

총 3단계로 이루어져있다. 어렵지 않다. 그냥 클릭하고 타자 치는 것의 반복이고, 단순히 여기 있는 걸 따라하면 된다.


1단계. Google Cloud Platform, API 사용 준비

첫째로, 우리의 목적은 python을 이용해서 Google spreadsheet에 접근하는 것이다. 이를 위해서는 Google Cloud Platform에 먼저 접근해야 한다. 링크를 클릭해 접속해주자.

Google Cloud Platform : 약관 동의

만약 당신이 처음으로 Google Cloud Platform을 써본다면, 위 팝업창을 맞이하게 될 것이다.

서비스 약관에 동의해야 앞으로 이어질 과정을 계속할 수 있기에 동의해주도록 하자.

이제 상단의 ‘프로젝트 선택’ 을 열어서 ‘새 프로젝트’ 를 만들어보자.

Google Cloud Platform : 새 프로젝트

프로젝트 이름은 마음대로 해도 된다. 그냥 입력하고 ‘만들기’ 버튼을 누르는 것으로 간단히 만들 수 있다.

프로젝트가 만들어지면, 상단의 ‘사용자 인증 정보 만들기’ 를 클릭한다.

Google Cloud Platform : 사용자 인증 정보 만들기

리스트에서 ‘서비스 계정’ 클릭. 이후 내용을 입력하여 서비스 계정을 만들어주는데, 편한 이름으로 만들어주면 된다.

Google Cloud Platform : 서비스 계정 만들기

2, 3단계는 권한에 대한 건데, 선택사항이므로 굳이 건들지 않아도 된다.

Google Cloud Platform : 서비스 계정

이제 아래에 이렇게 서비스 계정이 하나 만들어졌을 것이다. 이메일을 클릭하고 들어간다.

Google Cloud Platform : 새 키 만들기

상단바의 ‘키’ 탭에 들어가서, ‘키 추가’ > ‘새 키 만들기’.

Google Cloud Platform : JSON 키 만들기

여기서 ‘JSON’ 으로 선택하고, ‘만들기’ 를 클릭.

이제 json 확장자로 된 파일이 하나 다운로드 되었을 것이다. 이 위치를 잘 기억해두자.

API 및 서비스 사용 설정

이제 거의 다 왔다. 다시 이전 화면으로 돌아가서, 좌측 탭에서 ‘사용 설정 된 API 및 서비스’ 에 들어간다.

이후 상단의 ‘API 및 서비스 사용 설정’ 클릭.

Google Workspace

스크롤을 쭉 내리면 위와 같이 ‘Google Workspace’ 가 나올 것이다. 우측 상단의 ‘모두 보기’ 를 클릭.

여러 API가 나올텐데, 다음 두 개를 ‘사용’을 클릭하여 활성화시켜주면 된다.

  • Google Sheets API
  • Google Drive API

알 만한 사람들은 알겠지만 웹에서 이런저런 하고싶은 것들을 구현하려고 하보다보면 이러한 API를 다뤄야 하는 일들 투성이다. 익숙해져야 한다…


2단계. 파이썬 스크립트 작성

이제 터미널에서 파이썬 세팅을 해보도록 하자. 다음 커맨드를 이용해 필요한 모듈들을 업데이트&다운로드한다.

pip install --upgrade oauth2client 
pip install gspread
pip install PyOpenSSL

구글 스프레드시트에 접근하고 수정하기 위해 필요한 파이썬 모듈들이다.

만약 여기서 pip에 관련된 에러가 뜨면, 버전이나 환경 설정의 오류일 가능성이 높다.

그럴 경우 각각의 pip 명령어 앞에 ‘python3 -m ‘ 을 붙이면 해결될 가능성도 있긴 한데… 웬만해서는 그런 에러에 봉착하게 되면 그냥 가상 환경을 깔아서 하자(…) 그게 가장 맘 편하다.

이제 다음 스크립트를 그대로 써주면 된다.

import gspread
from oauth2client.service_account import ServiceAccountCredentials

# Authenticate with Google Sheets API
scope = ['https://spreadsheets.google.com/feeds',
         'https://www.googleapis.com/auth/drive']
creds = ServiceAccountCredentials.from_json_keyfile_name('credential파일.json', scope)
client = gspread.authorize(creds)

# Open the spreadsheet and select the worksheet by name
spreadsheet = client.open('스프레드시트이름')
worksheet = spreadsheet.worksheet('시트이름')

# Update a cell's value
row_num = 5
col_num = 5
cell = worksheet.cell(row_num, col_num)
cell.value = 'New Value'
worksheet.update_cell(row_num, col_num, 'TestValue')

여기서 당신이 수정해야 할 요소들은 다음과 같다.

  • credential파일 → 다운로든 json 파일의 이름을 넣어주자.
  • 스프레드시트이름 → 접근하고자 하는 스프레드시트의 이름을 입력해주자.
  • 시트이름 → 편집하고자 하는 시트 이름을 입력해주자.
  • row_num, col_num 오른쪽에 있는 숫자 → 수정하고자 하는 셀이 있는 행, 열의 숫자를 각각 써주자.
  • TestValue → 수정하고자 하는 내용을 넣어주자.

여기까지 완료됐으면 거의 다 왔다. 마지막으로 이 파이썬 스크립트가 시트에 잘 접근할 수 있도록 하는 단계가 필요한데, 다음 단계에서 살펴보도록 하자.


3단계. 구글 스프레드시트 수정하기

위에서 다운로드받은 json파일을 열고, client_email에 해당하는 부분을 복사한다. 그리고 편집하고자 하는 시트의 공유 옵션에 가서, 엑세스 권한을 추가해준다.

구글 스프레드시트 공유 옵션

(여기에다 이메일을 그대로 붙여넣기해주면 된다.)

이제 파이썬 스크립트를 작동시켜주면, 잘 바뀌는 걸 확인할 수 있다.


마무리

이렇게 Google spreadsheet를 파이썬을 이용해서 편집하는 방법을 알아보았다.

이를 이용하면 스케줄러를 이용해서 지정된 시간에 스프레드시트를 업데이트하거나, 특정 조건에 따라 셀의 값을 다르게 업데이트하는 등 다양한 곳에 이용할 수 있을 것이다.

Leave a Comment