python xlwings 開いているエクセルを「出力画面」に出来る

pythonプログラム既存の画面出力は ん~

ターミナル出力は最下行に1行追加されるが、情報の表示としては能力不足も甚だしい。取り敢えず有るだけだ。

tkinterを使うしか無いかと学習したが、設定が原始的すぎて面倒くさい。

wordpress的に3カラム×自由に機能ウイジットを追加、という風にノンコードで画面をレイアウトできればいいのに・・・と思ってしまってやる気にならない。

開いているエクセルを表示画面に表示・更新できればいいのに。

以前エクセルをpythonでエクセルデータを弄ろうと思って調べたとき、何種類か有るモジュールの内openpyxlsが良いんだろうなと思った。しかし、openpyxlsはファイルの中身のデータを弄っって上書きするというもので、開いているエクセルの情報更新=表示更新は出来ない。

開いているエクセルにリアルタイムで追加書き込みされ続けたら簡単だろうなと思う。

while 1:

cells(1,1)=BTCJPY #A1セルに最新のbitcoin価格が更新

cells(1,2)=ETHJPY#A2セルにethrium価格

・・・・・

表示がエクセルで処理出来るならプログラム本体は楽できそうだが・・、無いと思っていた。

ある時、ふと気になってよくよく調べてみたら、xlwingsはそれが出来るという表記を見つけた。

しかし、調べ始めると、色々決め事が多くて使いづらそうに感じる記事が多い。

物は試し、最低限のコードを書いて試してみよう。

xlwingsビットコインのプログラム中で使うとしてそれっぽいお試し

とりあえず、ダミーデータをpythonからエクセルに送ってみる。

決め事は多くはない、簡単すぎる。

というかほぼエクセルに丸投げの感じだ。

import xlwings as xw
wb = xw.Book('') #空のbook(エクセルファイル)を作成
sht = wb.sheets['sheet1'] #操作するシートを指定
sht.range('A1').value = 'BTCJPY' #一応タイトル的な
sht.range('A2').value = 'ETHJPY' #
sht.range('A3').value = 'BATJPY' #

import time #time.sleepを使うため呼ぶ
for i in range(30): #このrangeは繰り返しのrangeメソッド
    #プログラム内の価格が表示・更新される
    sht.range('B1').value = 50000 + i #このrangeはエクセルのRange(ここでは小文字で書く)
    sht.range('B2').value = 30000 + i
    sht.range('B3').value = 70 +i
    time.sleep(0.3) #表示更新のインターバル

実際に取引所”Liquid”からデータを取得し続け、エクセルに表示させ続けるへ続く

コメント

タイトルとURLをコピーしました