Google Sheets API 사용 방법

jelly
7 min readNov 3, 2020

프로젝트를 진행하다 보면 다른 사람들과 공유를 위해 Google Drive 를 이용하는 경우가 많다. 종종 Google Drive 에 작업한 결과를 업로드하여 관리하는 경우도 있는데, 일일이 사람이 업로드 하는 것이 불편하여 간단하게 Google API 를 이용하여 “Google Spread Sheet 생성/읽기/수정” 하는 방법을 정리해 보았습니다.

먼저, Google API 를 이용하기 위해선 Google Cloud Platform 에서 Service Account 를 설정 해야 합니다.

https://console.cloud.google.com 로 접속하고

아래와 같은 팝업창이 나타나면 모두 동의 하면 됩니다.

“IAM 및 관리자” 메뉴로 가서 “프로젝트 만들기” 를 이용하여 Google API 를 사용할 프로젝트를 생성합니다.

1) 프로젝트 이름은 “jjeaby-google-api” 로 설정하고 만들기 버튼을 클릭합니다.

2) 이렇게 만들기를 하면 “jjeaby-google-api” 프로젝트가 생성됩니다.

“API 및 서비스” 메뉴로 가서 사용할 라이브러리를 추가합니다.

여기서 라이브러리가 바로 사용할 Google API 입니다

1) Google Sheets, Google Drive API 를 검색하고 사용 설정을 합니다.

2) 사용 설정 작업이 끝나면 API 및 서비스 화면으로 이동하여 Dash Board 화면이 나타나는지 확인 합니다.

3) "사용자 인증 정보" 화면에서 "서비스 계정" 을 추가합니다.(여기서는 “jjeaby” 로).

4) 추가된 “서비스 계정” 상세 화면으로 이동하여 “키추가” 를 클릭하여 “JSON” 비공개 키를 생성합니다.

Google Sheets API 를 이용하여 Google Sheets 를 생성,수정, 읽기할 폴더를 생성합니다.

"test-folder” 를 생성하고 위에서 설정한 “Service Account”계정을 공유 합니다. (권한은 : 편집자)

이렇게 JSON 인증 파일, Google Sheets 가 생성될 폴더를 만들어서 공유해주면 Google API 를 사용을 위한 기본 준비가 끝나게 됩니다.

이제 Google Sheets API 를 이용하여 Google Sheets 를 생성,수정, 읽기를 하는 방법을 찾아 보겠습니다.

Google Sheet API 를 사용하기 위해서 gspread, google-api-python-client 라이브러리를 설치해야합니다.

1) pip 를 이용하여 필요한 라이브러리를 설치합니다.

pip install gspread google-api-python-client

gspread, google-api-python-client 를 이용한 Google Sheet 생성/읽기/수정 방법을 알아 보겠습니다.

1) Google API 를 사용하기 위한 인증 코드를 작성합니다.

  • SCOPES 에 설정한 것은 Google Drive 에 Google Sheets 를 생성하기 위한 Permission SCOPE 설정 입니다.
  • CREDENTIALS 에 설정한 거은 https://console.cloud.google.com 에서 Google API 사용을 위해 설정한 인증 JSON 파일로 인증을 설정 한 것입니다.

2) gspread 라이브러리를 이용하여 Google Sheets 를 생성해 봅니다.

  • self.gc 는 2)번에서 설정한 gspread.authrize(CREDENTIALS) 입니다.
  • gspread 로 google sheets 를 생성 할 때는 folder_id 를 지정 해야 합니다. folder_id 는 google drive 의 폴더 정보 or URL 을 보고 확인 하면 됩니다.
  • gspread 는 기본적으로 cell 의 값을 update 하여 값을 입력합니다. 그래서 worksheet.update_acell 함수로 값을 추가 하였습니다.
  • gs.share(‘jjeaby.ec1@gmail.com’, perm_type=’user’, role=’writer’) 코드를 추가하여 Google Drive 의 소유자 계정을 추가하합니다. (이렇게 추가 하지 않으면 google drive 에 보여지지 않습니다.)
  • 이 코드가 실행되면 아래와 같이 a1, b1, a2, b2 의 값을 갖는 Google Sheets 가 생성됩니다.

2) gspread 라이브러리를 이용하여 Google Sheets 의 값을 읽어 보겠습니다.

  • self.gc 는 2)번에서 설정한 gspread.authrize(CREDENTIALS) 입니다.
  • open 함수를 이용하여 Google Drive 에 생성되어 있는 Google Sheets 객체에 접근합니다.
  • get_all_values() 함수를 이용하여 Google Sheets 의 모든 셀의 값을 읽습니다. (모든 셀의 값은 [ [ , ] , [, ] ] 이런 배열로 반환이 됩니다.)
  • 각각의 셀을 읽어 오는 “cell(1, 2).value” 함수도 존재합니다. ( 자세한 것은 https://gspread.readthedocs.io/en/latest/user-guide.html 참고)

2) gspread 라이브러리를 이용하여 Google Sheets 의 값을 수정 해보겠습니다.

  • self.gc 는 2)번에서 설정한 gspread.authrize(CREDENTIALS) 입니다.
  • update_acell 함수를 이용하여 “B2” 셀의 값을 “novels” 로 변경합니다.

gspread, oauth2client, google-api-python-client 를 이용한 Google Sheet 생성/읽기/수정의 전체 코드입니다.

요렇게 쉽게 Google Drive 에 Google Sheets 를 생성하고 수정할 수 있습니다~~:)

--

--