pbj0812의 코딩 일기

[Python] python으로 구글 스프레드 시트에 작성하기 본문

ComputerLanguage_Program/PYTHON

[Python] python으로 구글 스프레드 시트에 작성하기

pbj0812 2020. 1. 14. 02:45

0. 말머리

링크를 따라 학습하며 만들었습니다. 보다 자세한 설명은 위 링크를 타고 가시면 되나, 그 동안에 버전업이 되어 출력 결과는 이 글이 최신입니다.

 

1. 라이브러리 설치

 1) gspread 설치

pip install gspread

 2) oauth2client 설치

pip install --upgrade oauth2client

2. API 부여받기

 - Google APIs 접속 : 링크

 - 우측의 만들기 클릭

 - 정보 입력

 - 사용자 인증 정보 클릭 이후 우측 아래의 서비스 계정 관리 클릭

 - 계정 생성

 - 키 만들기

 - json 파일로 다운로드 이후 완료 클릭

3. 코드 작성

 0) 샘플 파일 작성

  - 구글 스프레드 시트 작성

  - 공유를 눌러 위에서 받은 json 파일 안에 있는 client_email을 입력

 1) 라이브러리 불러오기

import gspread
from oauth2client.service_account import ServiceAccountCredentials

 2) API 정보 입력하기

  - spreadsheet_url에는 0)에서 만든 파일의 url을 입력

scope = ['https://spreadsheets.google.com/feeds']
json_file_name = '/Users/pbj0812/Desktop/ouath/gspread-265016-de6a1ddc148e.json'
credentials = ServiceAccountCredentials.from_json_keyfile_name(json_file_name, scope)
gc = gspread.authorize(credentials)
spreadsheet_url = 'https://docs.google.com/spreadsheets/d/13_YiF6mOeIlGy-gwmEZQC57eKxysPgG9W0jwxZSM1rI/edit?usp=sharing'

 3) 문서 및 시트 불러오기

# 문서 불러오기
doc = gc.open_by_url(spreadsheet_url)
# a 시트 불러오기
worksheet = doc.worksheet('a')

 4) 읽기

  - 셀 읽기

cell_data = worksheet.acell('B2').value

  - 행 읽기

  - 원본 링크에서는 z열까지 내용을 출력하나, 따라 하였을 때는 데이터가 존재하는 곳까지만 읽음

row_data = worksheet.row_values(2)

  - 열 읽기

column_data = worksheet.col_values(1)

  - 범위 읽기

range_list = worksheet.range('A1:D3')
for cell in range_list:
    print(cell.value)

 5) 쓰기

  - 셀 업데이트

worksheet.update_acell('B1', 'b1 updated')

  - 행 추가하기

  - 원본 링크에서는 맨 아래쪽에 줄이 추가되나 따라 하였을 경우 데이터가 마지막으로 존재하는 행 이후에 작성

worksheet.append_row(['new1', 'new2', 'new3', 'new4'])

  - 특정 행 추가

worksheet.insert_row(['new1', 'new2', 'new3', 'new4'], 5)

  - 시트 크기 맞추기

worksheet.resize(10,4)

 6) 최종 결과

Comments