前提・実現したいこと
Pythonでエクセルのシート(Excelファイル"data.xlsx"のシート’data’)にデータを随時書き込みしていくプログラムを作っています。
VBAで言うところの、Endxlupのような仕組みで、値が入った最終行の下のセルを指定して新しい値をセルに追記していくというプログラムを作りたいのです。
発生している問題・エラーメッセージ
Max_rowで最大行を取得できる、というWebページの説明を見つけて実践してみたところ、確かに最終行の下に追加書き込みしていくことには成功したのですが、そのシートに、書き込みをしていく行の最終行より下の行に何か入っていると、そこの行を最終行と判定してそこから書き込みがスタートしてしまいます。
A2セルから書き込みをしてほしいのに、例えばB15に何か値が入ってしまっていると、書き込みがA16からスタートしてしまう、というようなことです。
該当のソースコード
import openpyxl
書き込みファイルと位置を指定
wb = openpyxl.load_workbook('data.xlsx')
ws = wb['data']
a=ws.max_row
シート最終行に書き込み
ws.cell(row=a+1,column=1).value = '120'
保存する
wb.save('data.xlsx')
試したこと
シートを変えればいいのか、とシートを変えてみましたがどうやらMax_rowの判定はブック全体に及ぶようで、シートを変えてもブック全体の
最終行を探し出してきて(例えば別シート'Sheet2'のB200に何か値が入っていると、シート名'data'のA201から書き込みがスタートする)しまいます。
色々調べてはみましたが、エラーが出てない現状、初心者すぎて何をどうしたらいいのかサッパリわかりません。
どなからご教授願えれば、と藁をもつかむ思いで投稿いたしました。
どうかよろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Python 3.7.5
Win10
回答1件
あなたの回答
tips
プレビュー