Skip to content
컴퓨터잡담
2021.06.25 16:06

파이썬 gspread 사용법

조회 수 11446 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

출처 : https://docs.gspread.org/en/latest/advanced.html

 


1.png

gc.open_by_url을 사용하려면 반드시 편집자가 사용할 수 있게 공유자를 추가해야 합니다.

 


 

 

 

다음 코드로 새 Python 파일을 만듭니다.

import gspread

gc = gspread.oauth()

sh = gc.open("Example spreadsheet")

print(sh.sheet1.get('A1'))

이 코드를 실행하면 인증을 요청하는 브라우저가 실행됩니다. 웹 페이지의 지침을 따르십시오. 완성되면, gspread 상점 옆에있는 config 디렉토리에서 자격 증명 권한 credentials.json을 . 브라우저에서 한 번만 인증하면됩니다. 다음 실행은 저장된 자격 증명을 재사용합니다.
 

gspread 사용의 예

앱을 아직 승인하지 않은 경우 먼저 인증을 읽어보세요 .

스프레드 시트 열기

Google 문서에 표시되는 제목으로 스프레드 시트를 열 수 있습니다.

sh = gc.open('My poor gym results')

구체적으로 알고 싶다면 키 (스프레드 시트의 URL에서 추출 할 수 있음)를 사용하십시오.

sht1 = gc.open_by_key('0BmgG6nO_6dprdS1MN3d3MkdPa142WFRrdnRRUWl1UFE')

또는 해당 키를 추출하는 것이 너무 게으르다면 전체 스프레드 시트의 URL을 붙여 넣으세요.

sht2 = gc.open_by_url('https://docs.google.com/spreadsheet/ccc?key=0Bm...FE&hl')

 

스프레드 시트 만들기

create()새 빈 스프레드 시트를 만드는 데 사용 합니다.

sh = gc.create('A new spreadsheet')

 

스프레드 시트 공유

이메일이 otto@example.com 인 경우 새로 생성 된 스프레드 시트를 자신과 공유 할 수 있습니다.

sh.share('otto@example.com', perm_type='user', role='writer')

share()허용되는 매개 변수의 전체 목록은 문서를 참조하세요 .

워크 시트 선택

인덱스로 워크 시트를 선택합니다. 워크 시트 색인은 0부터 시작합니다.

worksheet = sh.get_worksheet(0)

또는 제목으로 :

worksheet = sh.worksheet("January")

또는 가장 일반적인 경우 : Sheet1 :

worksheet = sh.sheet1

모든 워크 시트 목록을 가져 오려면 다음을 수행하십시오.

worksheet_list = sh.worksheets()

워크 시트 생성

worksheet = sh.add_worksheet(title="A worksheet", rows="100", cols="20")

워크 시트 삭제

sh.del_worksheet(worksheet)

셀 값 얻기

A1 표기법 사용 :

val = worksheet.acell('B1').value

또는 행 및 열 좌표 :

val = worksheet.cell(1, 2).value

 

    txt1 = str(entry_0.get()) # entry_0에 문자열 값을 txt1에 저장한다.
    cell = worksheet.find(txt1) # 워크시트에서 txt1 값으로 셀 정보를 cel1에 정한다.
    #print("찾은 셀위치 R%sC%s" % (cell.row, cell.col))
    cell_list = worksheet.findall(txt1) #워크시트에서 txt1로 검색한 모든 결과값을 cell_list에 저장한다.
    print(cell_list) #cell_list를 출력한다.
    value = cell.value #cel1값을 value에 저장한다.
    print(value) #value값을 저장한다.
    row_number = cell.row #cel1의 row 위치값을 row_number에 저장한다.
    print(row_number) #row_number를 출력한다.
    column_number = cell.col #cel1의 col 위치값을 colnum_number에 저장한다.
    print(column_number) #column_number를 출력한다.
    vv = worksheet.cell(cell.row, cell.col+3).value #워크시트의 cel1의 행, 열에 있는 결과값을 vv에 저장한다.
    print(vv) #vv값을 출력한다.
    

 

 

 

업데이트 / 삽입

업데이트

해당 키의 값을 업데이트 하고자 한다면?

worksheet.update('B1', '<Value>')

위와같이 첫번째 인자에는 행열의 위치를 지정하는데 나 같은 경우엔 소스코드에서 딕셔너리로 열에 대한 정보를 만들어 놓았다.

col = {
    'key': 'A',
    'value': 'B'
}

worksheet.update(col['value'] + str(t.row), '<Value>')

 

멀티라인? 다중배열구조로 한꺼번에 많은 데이터 업데이트 시키기

worksheet.update('B3:C4', [['값1','친구'],["널1",'주식']])   # 값과 친구는 B, C열의 3번행에 / 널1과 주식은 B, C 열의 4번행에 들어갑니다.

결과>>

1.png

 

 

삽입

worksheet.insert_row(['<Value>', '<Value>'])

insert_row 메서드를 사용하면 0번 행에 값을 추가한다. 0번 행은 구분 값으로 사용하려던터라 마지막 행에 넣는 방법을 찾고자 하였으나 구분값을 굳이 사용하지 않는다면 활용성이 높을 것으로 보인다.

여하튼 값을 찾을 때 값이 없으면 새로운 행을 삽입하는 코드는 아래처럼 작성할 수 있겠다.

find_row = None
try:
    find_row = worksheet.find("<Value>")
except:
    worksheet.insert_row(['<Value>', '<Value>'])

 

셀 수식을 얻으려면 다음을 수행하십시오.

cell = worksheet.acell('B1', value_render_option='FORMULA').value

# or

cell = worksheet.cell(1, 2, value_render_option='FORMULA').value

행 또는 열에서 모든 값 가져 오기

첫 번째 행에서 모든 값을 가져옵니다.

values_list = worksheet.row_values(1)

첫 번째 열에서 모든 값을 가져옵니다.

values_list = worksheet.col_values(1)

 

 

워크 시트의 모든 값을 목록 목록으로 가져 오기

list_of_lists = worksheet.get_all_values()

 

워크 시트의 모든 값을 목록 목록으로 가져와서 "특정단어"가 들어간 셀의 정보 찾기

1.png

 

list_of_lists = worksheet.get_all_values()
for ii in range(0,len(list_of_lists)):
    for iii in range(0,len(list_of_lists[ii])):
        if "값" in list_of_lists[ii][iii]:
            print(list_of_lists[ii][iii])
            cell = worksheet.find(list_of_lists[ii][iii])
            print("셀의 행,열번호 : "cell.row,cell.col)
            

결과>>

값1

셀의 행,열번호 :  4 2     >> 4번째 행의 B열의 값은 값1

미쳐 값!!!

셀의 행,열번호 :  5 1     >>  5번째 행의 A열의 값은 미쳐 값!!!

값싸다

셀의 행,열번호 :  5 4     >> 5번째 행의 D열의 값은 값싸다

 

 

 

워크 시트의 모든 값을 사전 목록으로 가져 오기

list_of_dicts = worksheet.get_all_records()

세포 찾기

문자열과 일치하는 셀 찾기 :

cell = worksheet.find("Dough")

print("Found something at R%sC%s" % (cell.row, cell.col))

정규식과 일치하는 셀 찾기

amount_re = re.compile(r'(Big|Enormous) dough')
cell = worksheet.find(amount_re)

일치하는 모든 셀 찾기

문자열과 일치하는 모든 셀 찾기 :

cell_list = worksheet.findall("Rug store")

정규 표현식과 일치하는 모든 셀을 찾습니다.

criteria_re = re.compile(r'(Small|Room-tiering) rug')
cell_list = worksheet.findall(criteria_re)

셀 개체

각 셀에는 값과 좌표 속성이 있습니다.

value = cell.value
row_number = cell.row
column_number = cell.col

셀 업데이트

A1 표기법 사용 :

worksheet.update('B1', 'Bingo!')

또는 행 및 열 좌표 :

worksheet.update_cell(1, 2, 'Bingo!')

범위 업데이트

worksheet.update('A1:B2', [[1, 2], [3, 4]])

range메소드 에서 가져 오거나 목록을 직접 만들 수 있습니다 .

a1 = worksheet.acell('A1')

c5 = worksheet.acell('C5')
a1.value = 'Hello'
c5.value = 'World'
wk.update_cells([a1, c5])

이렇게하면 한 번의 호출로 여러 셀이 업데이트됩니다.

 

 

0

Burnhash는 요청하지 않고는 Cell을 얻을 수있는 방법이 없다는 점에서 정확합니다. 그러나 더미 클래스를 사용하여 원하는 동작을 얻을 수있었습니다.

    class Cell:
        def __init__(self, c, r, v):
            self.col = c
            self.row = r
            self.value = v

    cell1 = Cell(1, 1, 'value1')  # A1
    cell2 = Cell(2, 1, 'value2')  # B1
    wk.update_cells([cell1, cell2])

 

 

서식

다음은 기본 서식의 예입니다.

설정 A1 : B1의 굵게 텍스트 형식 :

worksheet.format('A1:B1', {'textFormat': {'bold': True}})

A2 : B2 셀 범위 의 배경색을 검정색으로 지정하고 수평 정렬, 텍스트 색상 및 글꼴 크기를 변경합니다.

worksheet.format("A2:B2", {
    "backgroundColor": {
      "red": 0.0,
      "green": 0.0,
      "blue": 0.0
    },
    "horizontalAlignment": "CENTER",
    "textFormat": {
      "foregroundColor": {
        "red": 1.0,
        "green": 1.0,
        "blue": 1.0
      },
      "fontSize": 12,
      "bold": True
    }
})

의 두 번째 인수 format()는 업데이트 할 필드가 포함 된 사전입니다. 형식 옵션의 전체 사양은 Sheet API Reference의 CellFormat 에서 확인할 수 있습니다 .

gspread-formatting 은 기본을 넘어 설 때 도움이되는 광범위한 기능을 제공합니다.

Pandas와 함께 gspread 사용

pandas 는 데이터 분석을위한 인기있는 라이브러리입니다. 시트에서 pandas DataFrame으로 데이터를 가져 오는 가장 간단한 방법은 다음을 사용하는 것입니다 get_all_records().

import pandas as pd

dataframe = pd.DataFrame(worksheet.get_all_records())

다음은 시트에 데이터 프레임을 쓰는 기본 예입니다. 함께 update()우리 dataframe의 값에 따르는 시트의 첫 번째 행으로 dataframe의 헤더를 입력 :

import pandas as pd

worksheet.update([dataframe.columns.values.tolist()] + dataframe.values.tolist())

고급 Pandas 사용 사례는 다음 라이브러리를 확인하세요.

NumPy와 함께 gspread 사용

NumPy 는 Python의 과학 컴퓨팅을위한 라이브러리입니다. 고성능 다차원 배열 작업을위한 도구를 제공합니다.

시트의 내용을 NumPy 배열로 읽습니다.

import numpy as np
array = np.array(worksheet.get_all_values())

위의 코드는 데이터가 시트의 첫 번째 행에서 시작한다고 가정합니다. 당신이 첫 번째 행 머리글 행이있는 경우 교체 필요 worksheet.get_all_values()로 worksheet.get_all_values()[1:].

시트에 NumPy 배열을 씁니다.

import numpy as np

array = np.array([[1, 2, 3], [4, 5, 6]])

# Write the array to worksheet starting from the A2 cell
worksheet.update('A2', array.tolist())

 

 

 

 

 

 

 

 

로그인 후 댓글쓰기가 가능합니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
917 컴퓨터잡담 윈도우 10 절전모드(슬립모드) 예약해제 방법 secret 2021.07.28 499
916 Server PHP 가속기 secret 2016.03.05 525
915 컴퓨터잡담 서버 다운 원인 2015.12.10 557
914 Server Server 성능 테스트 secret 2016.11.30 585
913 컴퓨터잡담 ACTIVE-X 의 무서움 file 2015.12.26 669
912 컴퓨터잡담 Sitemap.xml 만들어 주는 사이트 file 2016.01.23 689
911 컴퓨터잡담 크롬 속도올리기 2015.01.24 806
910 컴퓨터잡담 박지성 맨유시절 호날두와의 호흡경기 모음(유니세프 친선경기) 2015.11.13 827
909 컴퓨터잡담 도스 배치파일로 원격지 컴퓨터 모니터링 2015.11.13 833
908 컴퓨터잡담 파이썬(python) 자주 사용하는 명령 모으기 2021.09.03 884
907 컴퓨터잡담 python 문자열에서 모든 공백을 제거 2021.08.31 897
906 컴퓨터잡담 아나콘다에서 모듈을 설치할 때에는? 2021.09.02 941
905 컴퓨터잡담 파이썬 키움증권 open api 스크랩 2021.09.02 969
904 컴퓨터잡담 PC에 안드로이드 설치하기 2015.12.01 989
903 컴퓨터잡담 핑테스트 프로그램 file 2015.09.01 1043
902 컴퓨터잡담 타지역 농지매입 2021.06.01 1108
901 컴퓨터잡담 파이썬 변수값에서 숫자만 추출하기 2021.07.28 1141
900 컴퓨터잡담 [안드로이드] 키캣 4.4 버전 플래시 동영상 안될때 해결방법 file 2015.12.04 1147
899 Server php.ini 파일설정으로 파일업로드 용량늘리기 2015.03.03 1150
898 Server XE ckeditor 모바일에서 사용하기 2015.07.13 1151
Board Pagination Prev 1 2 3 4 5 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소