Skip to content

Instantly share code, notes, and snippets.

@zekroTJA
Last active February 1, 2018 21:57
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zekroTJA/3d72f79c229266fb186b6828dc46ac53 to your computer and use it in GitHub Desktop.
Save zekroTJA/3d72f79c229266fb186b6828dc46ac53 to your computer and use it in GitHub Desktop.
Python Google Spreadsheet API - Tutorial

Console commands

Windows (CMDer):

λ pip install oauth2client gspread

Linux:

$ sudo pip install oauth2client gspread

bzw. bei mehreren Python Versionen auf dem System:

$ sudo pip3.6 install oauth2client gspread
###########################################################
# © 2017 zekro Development #
# dev.zekro.de - github.com/zekrotja #
# Please read following policy before using this code: #
# http://s.zekro.de/codepolicy #
###########################################################
import gspread
from oauth2client.service_account import ServiceAccountCredentials
# "Sagt" der Google API auf welche Schnittstelle ihr zugreifen wollt
scope = ['https://spreadsheets.google.com/feeds']
# Setzt die Credentials aus der JSON-File und dem Scope zusammen
credentials = ServiceAccountCredentials.from_json_keyfile_name('gsecrets.json', scope)
# Anmelden bei der Google API
gc = gspread.authorize(credentials)
# Zugriff auf Tabelle "yt-tut" (Tabellensheet 1)
table = gc.open("yt-tut").sheet1
def getCellValue(row, col):
"""
Returnt den Wert der Zelle mit den angegebenen Koordinaten.
"""
return table.cell(row, col).value
def setCellValue(row, col, value):
"""
Setzt den Wert der Zelle mit den angegeb. Koordinaten auf den
angegebenen Wert.
"""
table.update_cell(row, col, value)
def setRowValues(row, values):
"""
Setzt alle Werte in einem Array nacheinander in die Zellen einer
Zeile ein.
"""
for i, v in enumerate(values):
setCellValue(row, i + 1, v)
def getNextRow():
"""
Findet die letzte leere Zeile der Tabelle.
"""
count = 1
while len(table.row_values(count)[0]) > 0:
count += 1
return count
def append(values):
"""
Setzt in die Zellen der letzen leeren Zeile alle Values eines
angegebenen Arrays nacheinander in die Zellen ein.
"""
setRowValues(getNextRow(), values)
# test = [
# ["A1", "B1", "C1"],
# ["A2", "B2", "C2"],
# ["A3", "B3", "C3"]
# ]
# for v in test:
# append(v)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment