###【やりたいこと】
Python(pywin32)を使い指定のExcelファイルを
開く → 更新 → 上書き保存
させたく、コードを書きました。
しかし、後述の問題が発生してしまいます。回避する方法はないでしょうか。
追記:ExcelファイルはODBC設定がされており、更新をするとDBから
データを引用します。この処理を定期的に実行することでODBCドライバが
インストールされていないパソコンからも最新データでExcelを開く
という狙いになります。
【コード】
import win32com.client
import time
file = 'D:\share\excelfile.xlsx'
app = win32com.client.Dispatch("Excel.Application")
app.DisplayAlerts = False
app.Visible = True
book = app.Workbooks.Open(file)
book.RefreshAll()
time.sleep(8)
book.Close(SaveChanges=True)
app.quit()
###【発生している問題】
ファイルが共有されており、自分以外のパソコンで指定のExcelファイルを開いている場合、
Excelファイルを開くと読み取り専用となります。
この状態で上書き保存をすると別名保存となり、保存先をExcelが聞いてきます。
しかし、そのようになってしまうとPythonは応答できず、ずっと処理中となってしまいます。
読み取り専用となる場合は保存せずに閉じたいのですが、何か良い方法はないでしょうか。
補足情報(ツールのバージョン)
Python 3.9.5
Excel 2016
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/26 10:46