プロが教える店舗&オフィスのセキュリティ対策術

PythonからExcelの最終行を取得するプログラムを書いているのですがうまくいきません。
【問題点】
初回は正しく取得できます。
しかしその後エクセルを手動で開いて値が入力されているセルをクリアした後に
再度プログラムを実行すると最終行が正しく表示されません
※ただし行の削除まで行うと正しく取得できるようになります

以下の内容です
wb = excel.load_workbook('example.xlsx')
# ワークブックのアクティブ
ws = wb.active
# ワークシートの指定をしています
ws.title = 'TEST'
# 最終行の取得をしています
end_row = ws.max_row

以上です。
ご教授いただけると幸いです。

質問者からの補足コメント

  • うーん・・・

    問題が起こった内容が乏しい為、補足させていただきます。
    【やりたいこと】
     PythonからExcelに登録されていない項目を追加する処理を行いたい
    【使用したコード】
     【問題】
     ・問題を分かりやすくするためにExcelにははじめ項目が0個とします。
     ・プログラム1回目:Pythonから項目を5個追加しました。
       →【問題なし】最終行も正しく取得され値も正しい位置に入力されています
     ・Excelを手動で開いて最終行項目から2つクリアします
      プログラム2回目:Pythonから2つクリアされた項目の追加を行う
       →【問題あり】手動で消した項目を最終行に追加しなければならなのですが
        この場合最終行は「3」となるのですがprintで確認すると「5」となり
        最終行が正しく取得できていない状況です
        またExcel側には値は入っていないのも確認しています

      補足日時:2018/09/13 09:56

A 回答 (1件)

「最後にbookのCloseとexcel.Quit()が無いようですが、よいのかな?」、、、と思います。


ようは書かれているPythonのコードが該当Excelファイルの最新イメージを取り込んでいるかどうかだと思うのですが。
参考まで。
    • good
    • 0
この回答へのお礼

早速の解答ありがとうございます。
ご指摘にあった「bookのCloseとexcel.Quit()」などのエクセルのCloseする処理がないのは確かに不思議と思っていました。
(Python初心者なものでサイトをもとにプログラミングしていてそういった処理がなかったので…)
なのでClose関係を試してみたのですが、解決できませんでした、
補足で問題の内容を追加しましたので何かわかればよろしくお願いいたします。

お礼日時:2018/09/13 10:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!