본문 바로가기
파이썬/파이썬 스터디

파이썬을 이용한 구글 스프레드시트 연동 및 자동화 방법

by davi_kr 2023. 4. 12.

목차

    반응형

    실무에서 활용하고 있는 파이썬 - 구글 스프레드시트 연동법에 대해 적어보려 합니다.

    파이썬으로 연동한 db에서 데이터 뽑고 시트에다 자동으로 데이터 기록해주고 자동으로 기록된 데이터가 반영되고 시트에서도 돌아가고 이렇게 셋팅해두면 정말 편리합니다. 업무 효율도 많이 올라서 지금도 아주 잘 쓰고 있습니다.


    구글 클라우드 서비스 가입 및 서비스 계정 생성

    먼저, 연동을 위해서 구글 클라우드 서비스를 가입해야 합니다.

    https://console.cloud.google.com/apis/dashboard

     

    Google 클라우드 플랫폼

    로그인 Google 클라우드 플랫폼으로 이동

    accounts.google.com

    링크에 들어가서 아래와 같이 동의해주시면 됩니다. 이메일 업데이트는 본인이 원하시면 선택하면 되겠습니다.

    동의 및 계속하기 후에 사용자 인증 정보 > 프로젝트 만들기를 누릅니다.

    원하는 이름을 설정하고 만들기를 누릅니다. 사용자 인증 정보 만들기 > 서비스 계정을 누릅니다.

    01

    서비스 계정 이름을 적어주면 id도 자동 입력됩니다. 나중에 뭔지 잘 이해할 수 있을 이름으로 적어줍니다.

    만들고 계속하기를 누릅니다. 그리고 역할 선택 > Basic에서 편집자를 선택합니다. 세번째는 패스하고 완료를 눌러줍니다.

    01

    그러면 이렇게 아까 만든 서비스 계정이 생성되는데요. 이메일을 눌러줍니다.

    상세 화면에서 키 > 새 키 만들기를 누릅니다. JSON으로 만들기 누릅니다.

    01

    그러면 아래 이미지처럼 비공개 키가 컴퓨터에 저장됐다고 나오면서 실제로 json 파일이 컴퓨터에 저장 됩니다.

    이 키는 절대 잃어버리면 안되고 유출 되면 권한을 다 주는 셈이 돼서.. 관리 잘 해야 합니다.

    아래 이미지처럼 활성화 상태가 된 것까지 확인했으면

    세부정보에서 이메일을 복사하고

    사용하려는 시트 상단의 공유에서 사용자 및 그룹 추가에 해당 이메일을 붙여넣고 전송을 눌러 권한을 셋팅해줍니다.

    01


    구글 시트 API 연동

     

    맨 왼쪽 상단에 직선 3개짜리 누르고 API 및 서비스 > 라이브러리를 누릅니다.

    google sheet를 검색하고 Google Sheets API를 누릅니다.

    그리고 api 사용까지 눌러줍니다.

    012

    이것까지 설정해줘야 파이썬으로 자동화를 할 수 있습니다.


    파이썬 코드 예시​

    아래는 간단히 테스트 해볼 수 있는 코드입니다.

    import gspread
    
    # json 파일이 위치한 경로를 값으로 줘야 합니다.
    json_file_path = "본인 json 파일.json"
    gc = gspread.service_account(json_file_path)
    spreadsheet_url = "사용하려는 시트 주소"
    doc = gc.open_by_url(spreadsheet_url)
    
    worksheet = doc.worksheet("시트1")
    worksheet.update('a1','자동화 끝!')

    pip install gspread로 설치해주고

    json 파일이랑 시트 주소 등 정확히 입력해두시면 아래와 같이 파이썬을 돌리면 자동으로 업데이트 되는 걸 볼 수 있습니다.

    위 코드에 대한 해석을 붙여보겠습니다.

    해당 코드는 파이썬에서 gspread 라이브러리를 이용하여 Google 스프레드시트에 접근하고 데이터를 업데이트하는 코드입니다.

    첫째 줄에서는 gspread 모듈을 import하고, 둘째 줄에서는 인증을 위해 사용할 JSON 파일의 이름을 지정합니다.

    셋째 줄에서는 gspread.service_account() 메서드를 사용하여 JSON 파일을 인증에 사용하는 gspread 클라이언트 객체 gc를 생성합니다.

    넷째 줄에서는 해당하는 Google 스프레드시트의 URL 주소를 지정합니다.

    다섯째 줄에서는 gc.open_by_url() 메서드를 사용하여 스프레드시트를 열고 해당하는 문서 객체 doc을 가져옵니다.

    여섯째 줄에서는 doc.worksheet() 메서드를 사용하여 시트 이름을 지정하고, 해당 시트에 대한 워크시트 객체 worksheet를 가져옵니다.

    일곱째 줄에서는 worksheet.update() 메서드를 사용하여 A1 셀에 "자동화 끝!" 이라는 값을 업데이트합니다. 즉, 해당 코드는 연결된 스프레드시트의 시트1의 A1 셀에 "자동화 끝!"이라는 값을 입력하는 것입니다.

    gspread를 이용해서 시트를 편집하는 방법은 공식 문서가 있어서 참고하시면 좋습니다.

     

    gspread — gspread 5.7.2 documentation

    © Copyright 2023, Anton Burnashev Revision 642bf468.

    docs.gspread.org

     

    이상 포스팅을 마무리 해보려합니다.

    한번 자동화를 해두면 활용할 방안이 무궁무진합니다. 

    파이썬과 gspread를 활용하여 클라우드 서비스를 기반으로 한 구글 스프레드시트 자동화를 적용해보세요.

    분명 업무 효율이 크게 향상될 것입니다^^

    궁금하신 점은 댓글 남겨주세요.

     

    감사합니다.

     

    반응형

    댓글