티스토리 뷰

SWDesk

[Python] Google Spreadsheet

inhae 2021. 6. 26. 16:40

먼저, Google 개발자 센터에 어플리케이션을 등록할 것

 

<구글 스프레이시트 접속 코드>

    def __init__(self):
        scope = [
        'https://spreadsheets.google.com/feeds',
        'https://www.googleapis.com/auth/drive',
        ]
        json_file_name = 'JSON-FILENAME'

        credentials = ServiceAccountCredentials.from_json_keyfile_name(json_file_name, scope)
        gc = gspread.authorize(credentials)
        self.GoogleCredential = gc

 

<스프레드시트 열기>

    def OpenSpreadsheet(self, spreadName):
        gs1 = self.GoogleCredential.open(spreadName)
        #doc = self.GoogleCredential.open_by_url(spreadsheet_url)

        return gs1

* 기 생성된 스프레드시트가 있어야 함.

 

<스프레드시트 생성>

    def CreateSpreadsheet(self, spreadName):
        gs1 = self.GoogleCredential.create(spreadName)

        return gs1

 

<특정 시트에 데이터 쓰기(저장/기록하기)>

    def WriteSheet(self, spreadSheet, dataDF, sheetName=None):
        if sheetName:
            try:
                ws1 = spreadSheet.worksheet(sheetName)
            except:
                ws1 = spreadSheet.add_worksheet(title=sheetName, rows='1', cols='1')
        else:
            ws1 = spreadSheet.worksheet('시트1')
        set_with_dataframe(ws1, dataDF)

* DataFrame 형식의 데이터(dataDF)

* 'spreadSheet'는 문자열이 아닌 객체임.

 

<특정 시트에서 데이터 읽기(불러오기)>

    def ReadSheet(self, spreadSheet, sheetName = None):
        if sheetName:
            ws1 = spreadSheet.worksheet(sheetName)
        else:
            ws1 = spreadSheet.worksheet('Sheet1')

        values = ws1.get_all_values()
        dataDF = DataFrame(values, columns=values[0])
        dataDF = dataDF.reindex(dataDF.index.drop(0))

        return dataDF

* DataFrame 형식의 데이터를 반환함.

 

반응형
반응형
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함