J'ai essayé d'accéder aux feuilles de calcul Google en utilisant Python

introduction

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.

table des matières

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

1. Préparation pour accéder aux feuilles de calcul Google à partir de Python

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.

1-1. Créer un nouveau projet

-Cliquez sur ** Nouveau projet **

--Créez en saisissant un nom de projet approprié

--Fin

1-2. Activer l'API Google Drive

--Cliquez sur Activé

--Sélectionnez le projet créé en 1-1

--Fin

1-3. Activer l'API Google Spread Sheets

1-4. Définir les informations d'identification

――La préparation est presque terminée.

--Pour les rôles, sélectionnez ** Projet ** → ** Propriétaire **.

1-5. Générer une clé privée

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

2. Accédez aux feuilles de calcul Google à l'aide de Python

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!

2-1. Configurer le partage de Google Spread Sheet

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.

2-2. Obtenez la clé 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.

2-3. Exécution du programme!

――Préparez l'environnement avant de le faire.

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

Code de référence

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)

Explication du code de référence

(1) Accéder aux feuilles de calcul Google

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)

(2-1) Mettre à jour la valeur d'une certaine cellule (spécifier la ligne et la colonne)

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.

(2-2) Mettre à jour la valeur d'une certaine cellule (spécifier le libellé)

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.

(2-3) Mettre à jour la valeur des cellules dans une certaine plage

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

Site de référence

Recommended Posts

J'ai essayé d'accéder aux feuilles de calcul Google en utilisant Python
J'ai créé un exemple pour accéder à Salesforce en utilisant Python et Bottle
J'ai essayé de toucher Python (installation)
J'ai essayé d'utiliser Thonny (Python / IDE)
[Python scraping] J'ai essayé la recherche Google Top10 en utilisant Beautifulsoup et sélénium
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai essayé de sortir le journal d'accès au serveur en utilisant Node.js
J'ai essayé de résumer la gestion des exceptions Python
J'ai essayé d'implémenter PLSA en Python
J'ai essayé d'utiliser Azure Speech to Text.
J'ai essayé d'implémenter la permutation en Python
J'ai essayé de créer une expression régulière de "montant" en utilisant Python
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
Entrée standard Python3 que j'ai essayé de résumer
J'ai essayé d'utiliser l'optimisation bayésienne de Python
J'ai essayé de classer le texte en utilisant TensorFlow
J'ai essayé d'utiliser l'API UnityCloudBuild de Python
J'ai essayé d'implémenter ADALINE en Python
J'ai essayé d'implémenter PPO en Python
J'ai essayé de créer une application todo en utilisant une bouteille avec python
[Python] J'ai essayé de calculer TF-IDF régulièrement
J'ai essayé de toucher Python (syntaxe de base)
[Python] J'ai essayé d'obtenir diverses informations en utilisant l'API de données YouTube!
J'ai essayé d'analyser la carte du Nouvel An par moi-même en utilisant python
J'ai essayé de mettre à jour le calendrier Google avec des rendez-vous CSV à l'aide de Python et de l'API Google
vprof - J'ai essayé d'utiliser le profileur pour Python
Jouez avec Google Spread Sheet avec Python (OAuth)
J'ai essayé la détection d'objets en utilisant Python et OpenCV
Je souhaite envoyer un e-mail depuis Gmail en utilisant Python.
J'ai essayé d'utiliser l'API Google Cloud Vision
J'ai essayé d'obtenir des données CloudWatch avec Python
J'ai essayé d'utiliser mecab avec python2.7, ruby2.3, php7
J'ai essayé de sortir LLVM IR avec Python
J'ai essayé d'implémenter TOPIC MODEL en Python
J'ai essayé de lire un fichier CSV en utilisant Python
J'ai essayé d'utiliser le module Datetime de Python
J'ai essayé d'automatiser la fabrication des sushis avec python
J'ai essayé d'implémenter le tri sélectif en python
J'ai créé un jeu ○ ✕ avec TensorFlow
J'ai essayé d'utiliser paramétré
J'ai essayé d'utiliser argparse
J'ai essayé d'utiliser la mimesis
J'ai essayé d'utiliser anytree
J'ai essayé d'utiliser aiomysql
J'ai essayé d'utiliser Summpy
J'ai essayé Python> autopep8
J'ai essayé d'utiliser coturn
J'ai essayé d'utiliser Pipenv
J'ai essayé d'utiliser matplotlib
J'ai essayé d'utiliser "Anvil".
J'ai essayé d'utiliser Hubot
J'ai essayé d'utiliser ESPCN
J'ai essayé d'utiliser openpyxl
J'ai essayé d'utiliser Ipython
J'ai essayé de déboguer.
J'ai essayé d'utiliser PyCaret
J'ai essayé d'utiliser cron
J'ai essayé d'utiliser ngrok