In letzter Zeit berühre ich häufig Google-Tabellen von Google Colab.
(Ich habe auch ein Video wie dieses, schauen Sie also bitte nach, wenn Sie möchten! → [[Python mit Safas Colab -9 lernen] So schreiben Sie Werte von Google Colab in Google Spreadsheet (YouTube)](https :: //www.youtube.com/watch?v=4RCWYQk9bfM))
Wenn ich es berühre, tippe ich oft den üblichen Code ein, deshalb habe ich beschlossen, die häufig verwendeten Beschreibungen in Qiita als Beispielcode zusammenzustellen.
Grundsätzlich werde ich unter Bezugnahme auf das offizielle Dokument von "gspread" schreiben. gspread(Docs)
Die Bibliothek "gspread", die für die Arbeit mit Google-Tabellen unerlässlich ist. Wenn Sie in Google Colab einen Befehl drücken, fügen Sie am Anfang "!" Hinzu.
!pip install gspread
Als ich bisher schrieb, bemerkte ich, dass Google Colab von Anfang an "gspread" installiert zu haben schien. Die installierte Version ist übrigens "3.0.1".
import gspread
print(gspread.__version__)
# => 3.0.1
Hierbei ist zu beachten, dass diese von Anfang an installierte Version 3.0.1 nicht die neueste Version ist. Daher gibt es einige Funktionen, die nicht verwendet werden können. burnash/gspread(Releases)
Wenn Sie die neueste "gspread" -Funktion verwenden möchten, müssen Sie daher die neueste "gspread" installieren, indem Sie den folgenden Befehl ausführen.
!pip install --upgrade gspread
import gspread
print(gspread.__version__)
# => 3.6.0
** Dieses Mal habe ich jedoch darüber nachgedacht, mit Google Colab zu schreiben, um Google-Tabellen sofort zu verarbeiten. Daher schreibe ich mit "3.0.1", das standardmäßig installiert ist. .. ** ** ** (Da die in der neuesten Version hinzugefügten Funktionen auch attraktiv sind, möchte ich dies als separaten Beitrag schreiben.)
Dies ist ein wesentlicher Prozess für den Umgang mit Google-Tabellen von Google Colab. Wenn Sie diesen Code ausführen, erhalten Sie die Authentifizierung, die für die Arbeit mit Google-Tabellen in Google Colab erforderlich ist. (Fast wie "Magie" wird es beim Schreiben von Code verwendet, der Google-Tabellen verarbeitet. Wenn Sie Probleme beim Schreiben haben, können Sie diese Beschreibung mit Kopieren in Colab einfügen und ausführen.)
from google.colab import auth
from oauth2client.client import GoogleCredentials
import gspread
auth.authenticate_user()
gc = gspread.authorize(GoogleCredentials.get_application_default())
Ich bin mir nicht sicher, ob es sich bei dieser Authentifizierung um ein Google-Produkt, Google Colab und Google Spreadsheet handelt, aber es ist wirklich intelligent, sodass es ohne Probleme immer großartig ist.
Insbesondere sind die Schritte wie folgt.
Es ist einfach und wunderbar.
In Bezug auf die Methode zum Abrufen der zu bedienenden Google-Tabelle bietet gspread verschiedene Methoden, daher werde ich jede davon vorstellen. Von hier aus schreibe ich den Code unter der Annahme, dass die oben beschriebene Authentifizierung abgeschlossen wurde. (Wenn Sie es ohne Authentifizierung ausführen, wird ein Authentifizierungsfehler angezeigt.)
Dies ist eine Methode zum direkten Öffnen nach Dateinamen.
ss_name = "Name der Tabellenkalkulationsdatei"
workbook = gc.open(ss_name)
Öffnen mit der in der Tabellenkalkulations-URL enthaltenen ID. (Abgesehen davon hatte ich, soweit ich die Informationen auf Japanisch nachgeschlagen habe, den Eindruck, dass der häufigste Weg, sie zu öffnen, dieser Weg war.)
# https://docs.google.com/spreadsheets/d/{Dies ist die ID der Tabelle}/edit#gid=0
ss_id = "Tabellenkalkulations-ID"
workbook = gc.open_by_key(ss_id)
Es ist eine Methode, die URL der Tabelle so wie sie ist einzugeben und zu öffnen
ss_url = "Tabellenkalkulations-URL"
workbook = gc.open_by_url(ss_url)
Es gab auch eine Möglichkeit, alle Tabellen in Google Drive abzurufen. https://gspread.readthedocs.io/en/latest/api.html#gspread.Client.openall
Beim Ausführen wird eine Liste der Tabellen zurückgegeben.
workbook_list = gc.openall()
for workbook in workbook_list:
print(workbook.title) #Zeigen Sie den Titel der abgerufenen Datei an
Mit der folgenden Methode können Sie ein bestimmtes Blatt für das oben erhaltene Arbeitsblatt abrufen.
ss_name = "Name der Tabellenkalkulationsdatei"
workbook = gc.open(ss_name)
worksheet = workbook.worksheet("Blatt1")
ss_name = "Name der Tabellenkalkulationsdatei"
workbook = gc.open(ss_name)
worksheet = workbook.get_worksheet(0)
ss_name = "Name der Tabellenkalkulationsdatei"
workbook = gc.open(ss_name)
worksheet = workbook.worksheet("Blatt1")
print(worksheet.acell("A1").value)
# =>Wert der Zelle A1
print(worksheet.acell("B2").value)
# =>B2 Zellenwert
print(worksheet.cell(3,2).value)
# =>B3-Zellenwert
ss_name = "Name der Tabellenkalkulationsdatei"
workbook = gc.open(ss_name)
worksheet = workbook.worksheet("Blatt1")
print(worksheet.range(3,2)[0].value)
# =>Gibt für range ein Array von Zellen zurück
# =>Im Fall dieser Spezifikation ist nur eine Zelleninformation von B3 in dem Array enthalten, also so[0]Der Wert wird durch Angabe von mit erhalten
#Rufen Sie Zellinformationen in dem Bereich ab, den Sie angeben möchten. Da es sich mit einem Array ändert, werden alle Werte in einer Schleife ausgegeben
cell_list = worksheet.range("A1:B3")
for cell in cell_list:
print(cell.value)
Die hier erfasste Zelle hat übrigens die folgenden drei Eigenschaften.
Das Folgende ist beispielsweise ein Beispielcode zum Abrufen und Anzeigen des Werts einer Zelle im angegebenen Bereich ("A1: B3").
ss_name = "Name der Tabellenkalkulationsdatei"
workbook = gc.open(ss_name)
worksheet = workbook.worksheet("Blatt1")
#Rufen Sie Zellinformationen in dem Bereich ab, den Sie angeben möchten. Da es sich mit einem Array ändert, werden alle Werte in einer Schleife ausgegeben
cell_list = worksheet.range("A1:B3")
for cell in cell_list:
print('%Linien%Der Wert in Spalte s ist%s' % (cell.row, cell.col, cell.value))
Es gibt die folgenden Methoden, um den Wert im angegebenen Blatt abzurufen.
Wenn Sie "get_all_records" verwenden, wird der Wert des Zielblatts als Liste von Diktaten (Wörterbuch) zurückgegeben.
ss_name = "Name der Tabellenkalkulationsdatei"
workbook = gc.open(ss_name)
worksheet = workbook.worksheet("Blattname, den Sie erhalten möchten")
print(worksheet.get_all_records())
# => [{'item1': 2, 'item2': 4, 'item3': 31}, {'item1': 3, 'item2': 6, 'item3': 32}, ...
Wenn Sie es aufrufen, ohne Optionen anzugeben, wird die erste Zeile als Kopfzeile behandelt. Informationen zum Festlegen von Optionen finden Sie unter hier.
Wenn Sie beispielsweise den Wert im Blatt in json konvertieren möchten, lautet der Code wie folgt.
#Bei der Konvertierung in den angegebenen Blattwert json
import json
ss_name = "Name der Tabellenkalkulationsdatei"
workbook = gc.open(ss_name)
worksheet = workbook.worksheet("Name des Zielblatts")
dict_list = worksheet.get_all_records()
print(json.dumps(dict_list))
Eine andere Möglichkeit besteht darin, es einfach als Array von Werten mit get_all_values abzurufen.
ss_name = "Name der Tabellenkalkulationsdatei"
workbook = gc.open(ss_name)
worksheet = workbook.worksheet("Blattname, den Sie erhalten möchten")
print(worksheet.get_all_values())
# => [['item1', 'item2', 'item3'], ['2', '4', '31'], ['3', '6', '32'], ...
Verwenden Sie "append_row", um dem Blatt Werte mit Zeilen hinzuzufügen. Das folgende Beispiel ist ein Beispielcode, der dem angegebenen Blatt 100 Zeilen mit dem Wert hinzufügt. (Wenn das Blatt beispielsweise bereits eine Beschreibung enthält, wird von dort aus eine neue Zeile hinzugefügt.)
import random
ss_name = "Name der Tabellenkalkulationsdatei"
workbook = gc.open(ss_name)
worksheet = workbook.worksheet("Blatt 2")
for i in range(100):
worksheet.append_row([i, i * 2, random.randint(1, 100)])
Unten finden Sie eine Erfassung der tatsächlich eingegebenen Tabelle.
Wenn Sie den gesamten Inhalt des angegebenen Blattes löschen möchten, müssen Sie anscheinend Folgendes ausführen.
Da dies jedoch ein sehr heikler Code ist (die Anzahl der vorhandenen Zeilen wird zeilenweise gelöscht), ist es besser, alles auf einmal zu löschen, indem Sie das unten beschriebene Blatt selbst löschen. Sieht gut aus. </ font>
#Wenn Sie alle Werte im angegebenen Blatt löschen möchten
ss_name = "Name der Tabellenkalkulationsdatei"
workbook = gc.open(ss_name)
worksheet = workbook.worksheet("Blattname")
for i in range(1, len(worksheet.get_all_values())):
worksheet.delete_row(1)
Wenn Sie das neueste "gspread" verwenden möchten, wird delete_rows vorbereitet. Verwenden Sie dies also. Wenn Sie es verwenden, scheint es möglich zu sein, den gesamten angegebenen Zeilenbereich zu löschen.
Wenn Sie das Zielblatt selbst löschen möchten, übergeben Sie das Zielblatt selbst an "del_worksheet".
ss_name = "Name der Tabellenkalkulationsdatei"
workbook = gc.open(ss_name)
worksheet = workbook.worksheet("Blattname, den Sie löschen möchten")
workbook.del_worksheet(worksheet)
Das ist alles.
Ich habe gspread
noch nicht ausprobiert, also hoffe ich, dass ich es nach und nach zu diesem Beitrag hinzufügen kann.
Recommended Posts