2010-03-04 3 views
5

Ich bin in der Lage, den Feed aus der Tabelle und Arbeitsblatt-ID zu bekommen. Ich möchte die Daten von jeder Zelle erfassen.Wie schreibe ich ein Python-Skript zu manipulieren Google Tabellenkalkulation Daten

ich kann den Feed aus dem Arbeitsblatt abrufen. Jetzt muss ich Daten (String-Typ?) Von jeder der Zellen erhalten, um einen Vergleich und für die Eingabe zu machen.

Wie genau kann ich das tun?

+0

Ich weiß nichts über Python, aber wäre es nicht einfacher, zuerst die Excel-Datei in rtf umzuwandeln und dann die Werte einzulesen? – Grumpy

+0

Ich verwende Python-Skript, um Daten aus der Google Docs-Tabelle hier abzurufen. – GeminiDNK

Antwort

21

Es gibt einen anderen spreadsheet library wert zu betrachten: gspread. Ich habe die oben erwähnte Google-Datenbibliothek verwendet und mir ist die bereitgestellte API seltsam. Sie müssen den Schlüssel der Tabelle extrahieren, um mit der Arbeit mit dieser Tabelle zu beginnen.

Hier ist es einfacher. Wenn Sie die Daten aus einer Zelle holen mögen, können Sie nur ein Arbeitsblatt öffnen und den Wert erhalten:

g = gspread.login('[email protected]', 'password') 

worksheet = g.open('name_of_the_spreadsheet').get_worksheet(0) 

# Say, you need A2 
val = worksheet.cell(2, 1).value 

# And then update 
worksheet.update_cell(2, 1, '42') 
+3

Das sieht viel vernünftiger und weniger klugdy aus – Damian

0

gspread ist wahrscheinlich der schnellste Weg, um diesen Prozess zu beginnen, aber es gibt einige Geschwindigkeitsbegrenzungen auf Aktualisieren von Daten sind mit gspread von Ihrem lokalen Host. Wenn Sie große Datenmengen mit gspread verschieben - beispielsweise 20 Spalten mit Daten über eine Spalte verschieben, möchten Sie möglicherweise den Prozess mithilfe eines CRON-Jobs automatisieren.

0

Es gibt noch eine Tabellenkalkulationsbibliothek: pygsheets. Es ähnelt gspread, verwendet aber Google API v4. Daher bietet mehr Optionen.

import pygsheets 

gc = pygsheets.authorize() 

# Open spreadsheet and then workseet 
sh = gc.open('my new ssheet') 
wks = sh.sheet1 

# Update a cell with value (just to let him know values is updated ;)) 
wks.update_cell('A1', "Hey yank this numpy array") 

# update the sheet with array 
wks.update_cells('A2', my_nparray.to_list()) 

# share the sheet with your friend 
sh.share("[email protected]") 
Verwandte Themen