Google에서 스프레드시트 API를 gspread로 사용할 때면 자주 사용하는 기능들이 있는데, 여기에 몇 가지 적어보고자 합니.
물론 기능을 사용하기 위해서는 먼저 구글 API에서 키를 받고 연동하는 과정이 중요합니다. 이때, 개발자 계정은 해당 계정에 편집자 권한으로 들어가 있어야 합니다.
키 받아서 시트 불러오기
# API 키를 연동하는 과정
key_file = "키파일 경로.json"
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
creds = ServiceAccountCredentials.from_json_keyfile_name(key_file, scope)
client = gspread.authorize(creds)
# 파일 불러오기
google_sheet = client.open("스프레드 시트 파일 이름")
sheet = google_sheet.worksheet("워크시트 이름")
시트 추가 및 삭제하기
# 워크시트 추가하기
new_worksheet = google_sheet.add_worksheet(title = "새 워크시트 이름", rows = 100, cols = 50)
# 워크시트 삭제하기
deleting_worksheet = google_sheet.worksheet("삭제할 시트 이름")
google_sheet.del_worksheet(deleting_worksheet)
시트 데이터 불러오기
# 특정 셀 데이터 가져오기
data = sheet.acell("A1").value
data = sheet.acell(1, 1).value
# 특정 행 데이터 가져오기 (리스트 형태로 반환)
rows_list = sheet.row_values(1)
# 특정 열 데이터 가져오기 (리스트 형태로 반환)
cols_list = sheet.col_values(1)
# 범위 선택하여 데이터 가져오기 (자료형 Cell data 형식)
range_val_list = sheet.range("A1:C3")
# list in list 형태로 모든 데이터 가져오기
data_list = sheet.get_all_values()
# dictionary 형태로 모든 데이터 가져오기
data_dict = sheet.get_all_records()
다만 get_all_records를 쓰기 위해서는, 스프레드 시트가 pandas 형태처럼 정렬된 데이터일 필요가 있습니다. (1행에 attribute가 적혀있어야함)
시트 내용 작성
# 워크시트 추가하기
sheet.update("수정할 셀 위치", "수정할 내용")
sheet.update("C3", "Hello")
sheet.update("A1:B2", [[1, 2], [3, 4]]) # 범위 수정도 가능
이때 update는 기존에 적힌 내용을 싹 지우고 업데이트 하기 때문에, 기존의 내용에 덧붙여서 쓰는 경우에는 기존에 셀에 있던 내용을 다른 변수에 저장해두는 편이 좋다.
'코딩 지식' 카테고리의 다른 글
Discord Bot을 Python으로 제작하기 (0) | 2023.06.22 |
---|---|
AWS EC2 서버 구축하기 (0) | 2023.03.31 |
github 홈페이지 만들기 (0) | 2022.08.19 |
ipynb 파일 py로 Linux에서 변경하기 (0) | 2022.08.19 |
Crontab으로 재부팅 시 파이썬 자동 실행하기 (0) | 2022.08.19 |