Ich habe versucht, mit Python auf Google Spread Sheets zuzugreifen

Einführung

Die Leute möchten natürlich mit Python auf Google Spread Sheets zugreifen. Es ist ein Artikel, der einen solchen Wunsch leicht befriedigen kann.

Inhaltsverzeichnis

―― 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!

1. Vorbereitung für den Zugriff auf Google Spread Sheets von Python aus

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

1-1 Erstellen Sie ein neues Projekt

-Klicken Sie auf ** Neues Projekt **

--Ende

1-2. Aktivieren Sie die Google Drive-API

--Klicken Sie auf Aktiviert

--Wählen Sie das in 1-1 erstellte Projekt aus

--Ende

1-3. Aktivieren Sie die Google Spread Sheets-API

1-4. Anmeldeinformationen festlegen

――Die Vorbereitung ist fast vorbei.

--Wählen Sie für Rollen ** Projekt ** → ** Eigentümer **.

--Klicken Sie auf Fertig stellen, um den Vorgang abzuschließen.

1-5 Generieren Sie einen privaten Schlüssel

--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.

2. Greifen Sie mit Python auf Google Spread Sheets zu

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!

2-1 Richten Sie die Freigabe von Google Spread Sheet ein

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.

2-2. Holen Sie sich den Schlüssel für Google Spread Sheets

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.

2-3. Programmausführung!

――Vorbereiten Sie die Umgebung, bevor Sie dies tun.

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. image.png

Referenzcode

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)

Erklärung des Referenzcodes

(1) Greifen Sie auf Google Spread Sheets zu

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)

(2-1) Aktualisieren Sie den Wert einer bestimmten Zelle (geben Sie die Zeile und Spalte an).

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.

(2-2) Aktualisieren Sie den Wert einer bestimmten Zelle (geben Sie die Bezeichnung an).

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.

(2-3) Aktualisieren Sie den Wert von Zellen in einem bestimmten Bereich

――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

Referenzseite

Recommended Posts

Ich habe versucht, mit Python auf Google Spread Sheets zuzugreifen
Ich habe ein Beispiel für den Zugriff auf Salesforce mit Python und Bottle erstellt
Ich habe versucht, Python zu berühren (Installation)
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
[Python Scraping] Ich habe versucht, Google Search Top10 mit Beautifulsoup & Selenium
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich habe versucht, das Zugriffsprotokoll mit Node.js auf dem Server auszugeben
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Azure Speech to Text zu verwenden.
Ich habe versucht, Permutation in Python zu implementieren
Ich habe versucht, mit Python einen regulären Ausdruck für "Betrag" zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen
Python3-Standardeingabe habe ich versucht zusammenzufassen
Ich habe versucht, die Bayes'sche Optimierung von Python zu verwenden
Ich habe versucht, Text mit TensorFlow zu klassifizieren
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
Ich habe versucht, ADALINE in Python zu implementieren
Ich habe versucht, PPO in Python zu implementieren
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
[Python] Ich habe versucht, TF-IDF stetig zu berechnen
Ich habe versucht, Python zu berühren (grundlegende Syntax)
[Python] Ich habe versucht, mithilfe der YouTube-Daten-API verschiedene Informationen abzurufen!
Ich habe versucht, die Neujahrskarte selbst mit Python zu analysieren
Ich habe versucht, den Google-Kalender mit CSV-Terminen mithilfe von Python und Google API zu aktualisieren
vprof - Ich habe versucht, den Profiler für Python zu verwenden
Spielen Sie mit Google Spread Sheet mit Python (OAuth)
Ich habe versucht, Objekte mit Python und OpenCV zu erkennen
Ich möchte mit Python eine E-Mail von Google Mail senden.
Ich habe versucht, die Google Cloud Vision-API zu verwenden
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Ich habe versucht, Mecab mit Python2.7, Ruby2.3, PHP7 zu verwenden
Ich habe versucht, LLVM IR mit Python auszugeben
Ich habe versucht, TOPIC MODEL in Python zu implementieren
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Ich habe versucht, das Datetime-Modul von Python zu verwenden
Ich habe versucht, die Herstellung von Sushi mit Python zu automatisieren
Ich habe versucht, eine selektive Sortierung in Python zu implementieren
Ich habe ein ○ ✕ Spiel mit TensorFlow gemacht
Ich habe versucht, parametrisiert zu verwenden
Ich habe versucht, Argparse zu verwenden
Ich habe versucht, Mimesis zu verwenden
Ich habe versucht, anytree zu verwenden
Ich habe versucht, aiomysql zu verwenden
Ich habe versucht, Summpy zu verwenden
Ich habe Python> autopep8 ausprobiert
Ich habe versucht, Coturn zu verwenden
Ich habe versucht, Pipenv zu verwenden
Ich habe versucht, Matplotlib zu verwenden
Ich habe versucht, "Anvil" zu verwenden.
Ich habe versucht, Hubot zu verwenden
Ich habe versucht, ESPCN zu verwenden
Ich habe versucht, openpyxl zu verwenden
Ich habe versucht, Ipython zu verwenden
Ich habe versucht zu debuggen.
Ich habe versucht, PyCaret zu verwenden
Ich habe versucht, Cron zu verwenden
Ich habe versucht, ngrok zu verwenden