MoneyForwardから取得した資産推移CSVをGsheetからいい感じに閲覧する
はじめに
昨日書いた記事でMoneyForwardから資産推移CSVを自動取得するところまで書きました. catdance124.hatenablog.jp
これをどうにかグラフ化してスマホから確認したいな~というところで選択肢は3つあります.
- WEBアプリとして実装,閲覧
- グラフをchatなどで送信
- スプレッドシートに書き込み,閲覧
簡単な方がいいよね...ということで3つ目のスプレッドシートに書き込み,閲覧の方向で実装しました.
結果はこちら↓
スマホから見たグラフ
数値はでたらめですよ,もちろん😣
なお,いい感じのグラフ作成は下記記事を参考にしてさせていただきました. fire-hiko.com
この記事では
ことを説明します.
実装はこちら(昨日の記事でリポジトリを分けるといいましたが,あれは嘘でした)
CSVをスプレッドシートに書き込む
前述の記事でMoneyForwardから落としてきたall.csvをスプレッドシートに書き込むことを考えます.
まず,書き込むために色々準備が必要です. 下記記事を参考に準備しましょう.
順番通りやっていけば,jsonファイルが手に入るはずです.
このファイルをclient_secret.jsonとして保存しておきます.
あとは,書き込み先のシートのキーが必要です.
https://docs.google.com/spreadsheets/d/<ここの部分です>/edit
これをconfig.iniに書いておきます.
あとシートの名前も書いておきます.
# config.ini [SPREAD_SHEET] Key = 1_***** Worksheet_name = 資産推移データ(自動入力)
この設定を使ってpythonからスプレッドシートにall.csvを書き込んでみます.
短いのでベタ貼り↓
import configparser import csv import gspread from oauth2client.service_account import ServiceAccountCredentials def connect_gspread(json_path, spreadsheet_key): scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive'] credentials = ServiceAccountCredentials.from_json_keyfile_name(json_path, scope) gc = gspread.authorize(credentials) workbook = gc.open_by_key(spreadsheet_key) return workbook def main(): config_ini = configparser.ConfigParser() config_ini.read('config.ini', encoding='utf-8') spreadsheet_key = config_ini.get('SPREAD_SHEET', 'Key') spreadsheet_worksheet_name = config_ini.get('SPREAD_SHEET', 'Worksheet_name') workbook = connect_gspread(json_path="client_secret.json", spreadsheet_key=spreadsheet_key) workbook.values_update( spreadsheet_worksheet_name, params={'valueInputOption': 'USER_ENTERED'}, body={'values': list(csv.reader(open("../csv/all.csv", encoding='shift-jis')))} ) if __name__ == "__main__": main()
もう書いてることそのままです.
スプレッドシートに接続して,設定にあるシート名のシートにlist化したcsvを貼り付けているだけです.
これで資産推移データの自動更新ができました.(あとはcronに登録などお好きに)
3ヶ月,半年,一年など各期間のシートを作成する
下記記事のスプレッドシートを参考に(コピペして)グラフを作成します.
fire-hiko.com
コピーさせていただき...
ペーストします
グラフを編集し
データ範囲を調整します
できたやつを「個別のシートに移動」させれば
見やすいグラフができあがります
これはデータを全件選択しているので,全期間ということになります.
半年で作成したければ,データ範囲を180にしたり,
3ヶ月で作成したければデータ範囲を90にすればOKです.
あとはスマホで見やすいようにレイアウトを微調整すれば完成です.
(数値はでたらめです)
おわりに
これでグラフを見られるのでMoneyForwardに課金する必要がなくなりました
月500yenというのもチリツモなので...