PDFの図表をGoogle Spread Sheetにpythonに書き込ませる
皆さんこんにちは。管理人のTooleyです。
今回はPythonだけ使ってPDFの図表をGoogle Spread Sheetに書き込むのを自動化してみます。
これをそっくりそのまままねると多分エラー起こると思うので参考程度にみてくださいね。
じゃあ、やりましょう。
やることはGoogle APIの設定、SpreadSheetの設定、GoogleDriveアプリ版のダウンロード,ファイルの値の設定です。
GoogleAPIの設定についてはこちらの方が非常に丁寧に解説しているので参考にしてください。
Pythonでスプレッドシートからデータを読み込むのところから上のとこは一通りやりましょう。
www.twilio.com
ではgoogleスプレッドシートのidを獲得しましょう。
Spreadsheetのファイルの真ん中のとこ(リンクの/d/から/editのとこ)をクリックするとちょうどよく指定できるんでコピーしておきましょう。
そしたらGoogle Driveのアプリ版をインストールしてみましょう。
www.google.com
できたらいよいよプログラミングです!以下のコマンドをコマンドプロンプトで一個一個打ち込みましょう。ちなみにpythonは元々インストールしてある前提です。
pip install tabula-py pip install schedule pip install gspread pip install oauth2client pip install pandas
ではpythonファイルを書きます。とりあえずサクッとこんな感じに描いてみました。
import pandas as pd import tabula import gspread from google.oauth2.service_account import Credentials from gspread_dataframe import set_with_dataframe import glob import os import datetime import schedule import time import time import os import sys files = glob.glob("Google Driveの保存したいファイルがある場所のパス*.pdf") scope = ['https://www.googleapis.com/auth/spreadsheets','https://www.googleapis.com/auth/drive'] credentials = Credentials.from_service_account_file("JSONファイルのパス", scopes=scope) SPREADSHEET_KEY = 'スプレッドシートのキー' gc = gspread.authorize(credentials) workbook = gc.open_by_key(SPREADSHEET_KEY) worksheets = workbook.worksheets() for file in files: dfs = tabula.read_pdf(file, stream=True, pages='all') filename = os.path.splitext(os.path.basename(os.path.abspath(file)))[0] for df in dfs: try: worksheet = workbook.add_worksheet(title=filename + "のデータ",rows=str(df.shape[0] + 1),cols=str(df.shape[1] + 1)) set_with_dataframe(worksheet, df, resize=False, include_index = True) except: print()
こんな感じです。楽しんでいただけたら管理人としても嬉しいです。
ではまた。