2010-09-24
Google Spreadsheet API Note
스프레드시트 리스트 읽어오기
client = gdata.spreadsheets.client.SpreadsheetsClient()
feed = client.get_spreadsheets()
내부적으로 다음과 같은 URL 을 사용한다.
http://spreadsheets.google.com/feeds/spreadsheets/private/full
특정 스프레드 시트의 워크 시트 리스트 읽어오기
feed = client.get_worksheets(spreadsheet_key)
내부적으로
http://spreadsheets.google.com/feeds/worksheets/<키>/private/full
특정 워크 시트를 리스트 기반으로 읽어오기
이건 gdata.spreadsheets.client 에서 지원하지 않는다.
url = "https://spreadsheets.google.com/feeds/list/%s/%s/private/full" % (spreadsheet,worksheet)
feed = client.get_feed(url, desired_class = gdata.spreadsheets.data.ListsFeed)
이렇게 읽어온 feed.entry 에서 적당한 필드를 잘 읽어내야 한다. 내부적으로는 XML 이므로 다음과 같이 읽을 것. 잘 안읽히면 feed 를 그대로 출력해서 어떤 값이 있는지 보면 된다.
- entry.id.text
- entry.title.text
- entry.content.text: ListsFeed 로 읽어왔을 때 row 의 값들이 문자열로 들어가 있다.
- entry.get_elements(namespace=GSX_ELEMENT): 컬럼은 gsx: 태그로 들어가 있으므로, iterating 할 때에는 이걸 써야 한다.
- entry.get_value(column name): 이미 이름을 알고 있을때..
핵심은,
- 구글 스프레드 시트의 모든 문서, 워크시트, row, cell 들은 유니크한 URL 을 가진다.
- 적당한 URL 로 요청하면 ATOM XML 등으로 리턴한다.
- gd_client.get_feed 에 URL 을 넘기고 desired_class 를 잘 지정하면, 적당한 파이썬 객체로 래핑된다.
- 어떤 XML 이 리턴되는지만 잘 파악하면 끗.