Skip to content

Instantly share code, notes, and snippets.

@boertel
Created February 20, 2015 05:12
Show Gist options
  • Save boertel/e5000775549bf4887b16 to your computer and use it in GitHub Desktop.
Save boertel/e5000775549bf4887b16 to your computer and use it in GitHub Desktop.
Google spreadsheet
import sys
import getpass
import gspread
class Worksheet(object):
def __init__(self, gc):
self.gc = gc
@classmethod
def login(cls, email, pwd):
gc = gspread.login(email, pwd)
return cls(gc)
def key(self, key):
self.worksheet = self.gc.open_by_key(key).sheet1
return self
def update_column(self, data, start=1):
values_list = self.worksheet.row_values(start)
column = len(values_list) + 1
first = self.worksheet.get_addr_int(start, column)
last = self.worksheet.get_addr_int((len(data) - 1) + start, column)
self.update_cells(first, last, data)
def update_row(self, data, start=1):
values_list = self.worksheet.column_values(start)
row = len(values_list) + 1
first = self.worksheet.get_addr_int(row, start)
last = self.worksheet.get_addr_int(row, (len(data) - 1 + start))
self.update_cells(first, last, data)
def update_cells(self, first, last, data):
cell_list = self.worksheet.range('%s:%s' % (first, last))
for i, cell in enumerate(cell_list):
cell.value = data[i]
self.worksheet.update_cells(cell_list)
if __name__ == "__main__":
pwd = getpass.getpass("Password:")
email = sys.argv[1]
spreadsheet_key = sys.argv[2]
data = [1248, 2895, 5626, 9700, 4484, 20003, 827, 8576]
wks = Worksheet.login(email, pwd).key(spreadsheet_key)
wks.update_column(data, start=3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment