Les gens voudraient naturellement accéder aux feuilles de calcul Google avec python. C'est un article qui peut facilement satisfaire un tel désir.
―― 1. Préparation pour accéder aux feuilles de calcul Google à l'aide de Python --1-1. Créer un nouveau projet --1-2. Activer l'API Google Drive --1-3. Activer l'API Google Spread Sheets --1-4. Définir les informations d'authentification --1-5. Générer une clé privée ―― 2. Accédez aux feuilles de calcul Google à l'aide de Python --2-1. Configurer le partage de Google Spread Sheet ―― 2-2. Obtenez la clé de Google Spread Sheet --2-3. Exécution du programme!
C'est le plus ennuyeux.
Pour accéder aux feuilles de calcul Google de l'extérieur, Il semble préférable d'utiliser Google Cloud Platform.
-Cliquez sur ** Nouveau projet **
--Créez en saisissant un nom de projet approprié
--Fin
--Cliquez sur Activé
--Sélectionnez le projet créé en 1-1
--Fin
――La préparation est presque terminée.
Ici, lors de l'accès depuis l'extérieur (Python), les informations utilisées pour l'authentification sont acquises.
Accédez aux informations d'identification, cliquez sur ** Créer des informations d'identification ** et sélectionnez un compte de service.
Saisissez le nom du compte de service de manière appropriée et cliquez sur ** Créer **. ――Il semble que vous devriez écrire ce que fait le nom du compte de service
--Pour les rôles, sélectionnez ** Projet ** → ** Propriétaire **.
--Générer une clé privée à partir des informations d'identification créées en 1-4.
--Cliquez sur le compte de service créé en 1-4
-Cliquez sur ** Nouvelle clé ** de ** Clé **
--Sélectionnez ** json ** comme type de clé et cliquez sur Créer.
Il semble y avoir plusieurs façons d'accéder aux feuilles de calcul Google à partir de Python. Cette fois, j'introduirai la méthode utilisant gspread, qui semble être la plus simple.
La procédure est les 3 étapes suivantes 2-1. Configurer le partage de Google Spread Sheet 2-2. Obtenez la clé de Google Spread Sheet 2-3. Exécution du programme!
Tout d'abord, créez des feuilles de calcul Google et définissez les paramètres de partage.
--Ouvrez le json téléchargé en 1-5 et copiez l'adresse écrite à côté de ** "client_email" **. --XXXXXX [at] gspread-sheets-Cela devrait être une adresse comme python.YY.gserviceaccount.com.
--Cliquez sur "Partager" en haut à droite
--Ajoutez l'adresse copiée aux utilisateurs et aux groupes.
Ceci termine les paramètres de partage de Google Spread Sheets.
https://docs.google.com/spreadsheets/d/aaaaaaaaaaaaaa/edit#gid=0
Aaaaaaaaaaaaaa est la clé. Vous en aurez besoin dans 2-3, alors notez-le.
――Préparez l'environnement avant de le faire.
Si vous n'avez pas d'environnement Python sur votre PC, veuillez vous référer à ici (préparation à la publication)
Les trois modules suivants sont requis
Puisque json est un module Python standard, récupérez les deux autres avec pip.
pip install gspread
pip install oauth2client
――Le programme est enfin exécuté. ――Lorsque vous l'exécutez, la valeur est écrite comme ceci.
gspread_simple.py
import gspread
import json
from oauth2client.service_account import ServiceAccountCredentials
# (1)Visitez 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
#Ici le nom du fichier json et 2-Entrez la clé préparée en 2
jsonf = "~~~~~~~.json"
spread_sheet_key = "aaaaaaaaaaaaaa"
ws = connect_gspread(jsonf,spread_sheet_key)
#(2)Valeurs mises à jour sur les feuilles de calcul Google
#(2−1)Mettre à jour la valeur d'une cellule (spécifier la ligne et la colonne)
ws.update_cell(1,1,"test1")
ws.update_cell(2,1,1)
ws.update_cell(3,1,2)
#(2−2)Mettre à jour la valeur d'une cellule (spécifier une étiquette)
ws.update_acell('C1','test2')
ws.update_acell('C2',1)
ws.update_acell('C3',2)
#(2-3)Mettre à jour les valeurs d'une plage de cellules
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):
#Spécifiez deux API, des feuilles de calcul et un lecteur
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
#Définir les informations d'identification
credentials = ServiceAccountCredentials.from_json_keyfile_name(jsonf, scope)
gc = gspread.authorize(credentials)
#Accéder à la feuille 1 à l'aide de la clé de feuille de calcul
SPREADSHEET_KEY = key
worksheet = gc.open_by_key(SPREADSHEET_KEY).sheet1
return worksheet
#Spécifiez le nom du fichier json
jsonf = "~~~~~~~.json"
#Spécifiez la clé de feuille de calcul partagée
spread_sheet_key = "aaaaaaaaaaaaaa"
ws = connect_gspread(jsonf,spread_sheet_key)
ws.update_cell(ligne,Colonne,valeur)
Il est devenu. En d'autres termes
ws.update_cell(2,4,100)
Si tel est le cas, 100 sera écrit dans la 4e colonne (colonne D) de la 2e ligne.
ws.update_acell(étiquette,valeur)
Il est devenu. En d'autres termes
ws.update_acell("E4",200)
Si tel est le cas, 200 sera écrit dans la 5ème colonne (colonne E) de la 4ème ligne.
―― En passant, l'accès aux feuilles de calcul Google est limité à ** jusqu'à 100 fois en 100 secondes **, et si vous accédez à plus que cela, une erreur se produira. ――Si vous utilisez cette méthode, vous n'avez besoin d'y accéder que deux fois.
#Spécifiez une plage de cellules et stockez-la dans un tableau unidimensionnel.
ds = ws.range('A1:C3') #L'accès se produit
#Spécifiez la valeur de chaque cellule
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
#Mettre à jour la valeur
ws.update_cells(ds) #L'accès se produit
--Si vous spécifiez A1: C3, l'ordre dans lequel ils sont stockés dans le tableau unidimensionnel est le suivant.
A | B | C | |
---|---|---|---|
1 | ① | ② | ③ |
2 | ④ | ⑤ | ⑥ |
3 | ⑦ | ⑧ | ⑨ |
Recommended Posts