Die Leute möchten natürlich mit Python auf Google Spread Sheets zugreifen. Es ist ein Artikel, der einen solchen Wunsch leicht befriedigen kann.
―― 1. Vorbereitung für den Zugriff auf Google Spread Sheets mit Python --1-1. Erstellen Sie ein neues Projekt --1-2. Google Drive API aktivieren --1-3. Google Spread Sheets API aktivieren --1-4. Authentifizierungsinformationen festlegen --1-5. Generieren Sie einen privaten Schlüssel ―― 2. Greifen Sie mit Python auf Google Spread Sheets zu --2-1. Richten Sie die Freigabe von Google Spread Sheet ein ―― 2-2. Holen Sie sich den Schlüssel der Google-Tabelle --2-3. Programmausführung!
Das ist das nervigste.
Um von außen auf Google Spread Sheets zuzugreifen, Es scheint am besten, Google Cloud Platform zu verwenden.
--Die Ersteinrichtung auf der Google Cloud Platform umfasst die folgenden 5 Schritte --1-1. Erstellen Sie ein neues Projekt --1-2. Google Drive API aktivieren --1-3. Google Spread Sheets API aktivieren --1-4. Authentifizierungsinformationen festlegen --1-5. Generieren Sie einen privaten Schlüssel
-Klicken Sie auf ** Neues Projekt **
--Ende
--Klicken Sie auf Aktiviert
--Wählen Sie das in 1-1 erstellte Projekt aus
--Ende
――Die Vorbereitung ist fast vorbei.
Hier werden beim Zugriff von außen (Python) die für die Authentifizierung verwendeten Informationen erfasst.
Gehen Sie zu Anmeldeinformationen, klicken Sie auf ** Anmeldeinformationen erstellen ** und wählen Sie ein Dienstkonto aus.
Geben Sie den Namen des Dienstkontos entsprechend ein und klicken Sie auf ** Erstellen **. ――Es scheint, dass Sie schreiben sollten, was der Name des Dienstkontos bewirkt
--Wählen Sie für Rollen ** Projekt ** → ** Eigentümer **.
--Klicken Sie auf Fertig stellen, um den Vorgang abzuschließen.
--Klicken Sie auf das in 1-4 erstellte Dienstkonto
-Klicken Sie auf ** Neuer Schlüssel ** von ** Schlüssel **
--Wählen Sie ** json ** als Schlüsseltyp und klicken Sie auf Erstellen.
--Dies speichert die JSON-Datei.
Es scheint verschiedene Möglichkeiten zu geben, über Python auf Google Spread Sheets zuzugreifen. Dieses Mal werde ich die Methode mit gspread vorstellen, die am einfachsten zu sein scheint.
Das Verfahren besteht aus den folgenden 3 Schritten 2-1 Richten Sie die Freigabe von Google Spread Sheet ein 2-2. Holen Sie sich den Schlüssel der Google-Tabelle 2-3. Programmausführung!
Erstellen Sie zunächst Google Spread Sheets und legen Sie die Freigabeeinstellungen fest.
--Öffnen Sie den in 1-5 heruntergeladenen JSON und kopieren Sie die Adresse neben ** "client_email" **. --XXXXXX [at] gspread-sheet-Es sollte eine Adresse wie python.YY.gserviceaccount.com sein.
--Klicken Sie oben rechts auf "Teilen"
Damit sind die Einstellungen für die Freigabe von Google Spread Sheets abgeschlossen.
https://docs.google.com/spreadsheets/d/aaaaaaaaaaaaaa/edit#gid=0
Aaaaaaaaaaaaa ist der Schlüssel. Sie werden es in 2-3 benötigen, notieren Sie es sich also.
――Vorbereiten Sie die Umgebung, bevor Sie dies tun.
Wenn Sie keine Python-Umgebung auf Ihrem PC haben, lesen Sie bitte hier (Vorbereitung zum Posten)
Die folgenden drei Module sind erforderlich
Da json ein Standard-Python-Modul ist, holen Sie sich die anderen beiden mit pip.
pip install gspread
pip install oauth2client
――Das Programm wird endgültig ausgeführt. ――Wenn Sie es ausführen, wird der Wert wie folgt geschrieben.
gspread_simple.py
import gspread
import json
from oauth2client.service_account import ServiceAccountCredentials
# (1)Besuchen Sie Google Spread Sheets
def connect_gspread(jsonf,key):
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name(jsonf, scope)
gc = gspread.authorize(credentials)
SPREADSHEET_KEY = key
worksheet = gc.open_by_key(SPREADSHEET_KEY).sheet1
return worksheet
#Hier jsonfile name und 2-Geben Sie den in 2 vorbereiteten Schlüssel ein
jsonf = "~~~~~~~.json"
spread_sheet_key = "aaaaaaaaaaaaaa"
ws = connect_gspread(jsonf,spread_sheet_key)
#(2)Aktualisierte Werte in Google Spread Sheets
#(2−1)Aktualisieren Sie den Wert einer Zelle (geben Sie Zeile und Spalte an).
ws.update_cell(1,1,"test1")
ws.update_cell(2,1,1)
ws.update_cell(3,1,2)
#(2−2)Aktualisieren Sie den Wert einer Zelle (geben Sie eine Bezeichnung an).
ws.update_acell('C1','test2')
ws.update_acell('C2',1)
ws.update_acell('C3',2)
#(2-3)Aktualisieren Sie die Werte für einen Zellbereich
ds= ws.range('E1:G3')
ds[0].value = 1
ds[1].value = 2
ds[2].value = 3
ds[3].value = 4
ds[4].value = 5
ds[5].value = 6
ds[6].value = 7
ds[7].value = 8
ds[8].value = 9
ws.update_cells(ds)
def connect_gspread(jsonf,key):
#Geben Sie zwei APIs, Tabellenkalkulationen und Laufwerke an
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
#Anmeldeinformationen festlegen
credentials = ServiceAccountCredentials.from_json_keyfile_name(jsonf, scope)
gc = gspread.authorize(credentials)
#Greifen Sie mit dem Tabellenkalkulationsschlüssel auf Blatt1 zu
SPREADSHEET_KEY = key
worksheet = gc.open_by_key(SPREADSHEET_KEY).sheet1
return worksheet
#Geben Sie den Namen der json-Datei an
jsonf = "~~~~~~~.json"
#Geben Sie den freigegebenen Tabellenkalkulationsschlüssel an
spread_sheet_key = "aaaaaaaaaaaaaa"
ws = connect_gspread(jsonf,spread_sheet_key)
ws.update_cell(Linie,Säule,Wert)
Es ist geworden. Mit anderen Worten
ws.update_cell(2,4,100)
In diesem Fall werden 100 in die 4. Spalte (D-Spalte) der 2. Zeile geschrieben.
ws.update_acell(Etikette,Wert)
Es ist geworden. Mit anderen Worten
ws.update_acell("E4",200)
In diesem Fall werden 200 in die 5. Spalte (E-Spalte) der 4. Zeile geschrieben.
――Der Zugriff auf Google Spread Sheets ist übrigens auf ** bis zu 100 Mal in 100 Sekunden ** beschränkt. Wenn Sie auf mehr als dies zugreifen, tritt ein Fehler auf. ――Wenn Sie diese Methode verwenden, müssen Sie nur zweimal darauf zugreifen.
#Geben Sie einen Zellenbereich an und speichern Sie ihn in einem eindimensionalen Array.
ds = ws.range('A1:C3') #Der Zugriff erfolgt
#Geben Sie den Wert jeder Zelle an
ds[0].value = 1
ds[1].value = 2
ds[2].value = 3
ds[3].value = 4
ds[4].value = 5
ds[5].value = 6
ds[6].value = 7
ds[7].value = 8
ds[8].value = 9
#Wert aktualisieren
ws.update_cells(ds) #Der Zugriff erfolgt
A | B | C | |
---|---|---|---|
1 | ① | ② | ③ |
2 | ④ | ⑤ | ⑥ |
3 | ⑦ | ⑧ | ⑨ |
Recommended Posts