programming/Python

파이썬으로 구글스프레드시트 작성하기(with gspread 라이브러리)_[파이썬/구글시트]

Jofresh 2023. 5. 30. 17:20
728x90
반응형

안녕하세요.

조신선입니다.

 

 

오늘은 파이썬을 활용해서 구글스프레드시트

 

1. 파일을 생성하고

2. 워크시트를 추가하고

3. 데이터를 쓰고

4. 데이틀 활용해서 차트를 생성하고

5. 차트 위치 및 크기를 조정하고

6. 엑셀파일을 저장하는 

 

 

방법에 대해 포스팅하겠습니다.

 

 

 

오늘 사용할 라이브러리는 gspread 입니다. vscode 환경에서 연습을 하신다면,

파일 확장자를 py가 아닌 ipynb(쥬피터환경)으로 하시는게 연습하시기 훨씬 편하십니다.

 

 

ipynb로 하면 쥬피터 환경이라 연습할 때 오류 찾기도 편하고, 일일이 py 파일 생성할 필요 없어서 훨~씬 편함.

 

 

gspread는 구글 스프레드시트와 상호 작용하기 위한 파이썬 라이브러리입니다. gspread를 사용하여 파이썬 코드에서 구글 스프레드시트를 열고, 데이터를 읽고 쓰며, 시트를 관리할 수 있습니다. 아래는 gspread를 사용하는 방법에 대한 자세한 설명입니다:

 

1. gspread 설치하기:

 

pip install gspread

 

2. 구글 API 및 인증 설정하기:



1)Google Cloud Console에 접속하여 프로젝트를 생성합니다.
2)생성한 프로젝트에 "Google Sheets API"를 활성화합니다.
3)"사용자 인증 정보"에서 "서비스 계정 키"를 생성하고 JSON 파일로 다운로드합니다.
4)다운로드한 JSON 파일을 프로젝트 폴더에 저장합니다.

 

 

3. 구글 스프레드시트 접근하기:

import gspread
from oauth2client.service_account import ServiceAccountCredentials

# 인증 정보 설정
scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
client = gspread.authorize(credentials)

# 스프레드시트 열기
spreadsheet = client.open('스프레드시트 이름')

# 워크시트 선택
worksheet = spreadsheet.worksheet('시트 이름')

4. 데이터 읽기

 

# 특정 셀 값 읽기
cell_value = worksheet.cell(row, column).value

# 행 단위로 데이터 읽기
row_values = worksheet.row_values(row_number)

# 열 단위로 데이터 읽기
column_values = worksheet.col_values(column_number)

# 특정 범위 내 데이터 읽기
range_values = worksheet.range('A1:B5')
for cell in range_values:
    print(cell.value)

5. 데이터 쓰기

 

# 특정 셀에 값 쓰기
worksheet.update_cell(row, column, value)

# 행 단위로 데이터 쓰기
row_data = [value1, value2, value3]
worksheet.append_row(row_data)

# 여러 셀에 대량의 데이터 쓰기
data = [
    ['A1', 'B1', 'C1'],
    ['A2', 'B2', 'C2'],
    ['A3', 'B3', 'C3']
]
worksheet.update('A1', data)

6. 시트 관리:

 

# 시트 생성
new_worksheet = spreadsheet.add_worksheet(title='새 시트', rows='100', cols='20')

# 시트 이름 변경
worksheet.update_title('새로운 이름')

# 시트 삭제
spreadsheet.del_worksheet(worksheet)

7. 특정 셀 서식 지정:

 

from gspread_formatting import *

# 특정 셀에 서식 적용
cell_format = CellFormat(textFormat=TextFormat(bold=True))
format_cell_range(worksheet, 'A1', cell_format)

8. 특정 범위에 필터 적용:

 

from gspread_dataframe import set_with_dataframe

# 데이터프레임을 스프레드시트에 쓰고 필터 적용
df = pd.DataFrame({'Column1': [1, 2, 3], 'Column2': ['A', 'B', 'C']})
set_with_dataframe(worksheet, df)
worksheet.set_basic_filter()

9. 특정 셀에 하이퍼링크 추가:

 

# 특정 셀에 하이퍼링크 추가
cell_link = 'https://www.example.com'
worksheet.update('A1', f'=HYPERLINK("{cell_link}", "링크")')

10. 특정 범위의 데이터 정렬:

 

# 특정 범위의 데이터 정렬
sort_range = 'A2:B10'
worksheet.sort(sort_range, 'B', order='DESCENDING')

11. 특정 범위의 데이터 필터링:

 

 

# 특정 범위의 데이터 필터링
filter_range = 'A1:C10'
worksheet.set_basic_filter(range_string=filter_range)

 

 

엑셀 함수도 그렇듯, 해당 라이브러리 메소드들도 그냥 영어 단어만 해석하면 뜻을 이해하기가 어렵진 않을 것입니다.

저는 업무 특성상 엑셀보다는 구글스프레드 시트를 더욱 많이 사용하는데요. 반복되는 작업이 있을 경우 

파이썬을 활용하면 업무자동화 하는데 큰 도움이 될 수 있을 거에요! 

 

이상입니다.

 

 

728x90
반응형