申し訳ありません私は以前に尋ねられたかもしれない質問をしますが、私は本当にGoogleとスタックオーバーフローのフォーラムで答えを見つけることができませんでした。Excelアプリケーションを開いたときにPythonがxlsxファイルを変更する方法は?
質問は、ファイルで動作する最も便利なライブラリであるので、openpyxl
の使用法と接続されています。
import openpyxl
wb = openpyxl.load_workbook("D:/Python.xlsx")
sheet = wb.active
i = 0
sheet["A1"] = i
wb.save("D:/Python.xlsx")
ただし、開いているExcelファイルでは機能しません。私はまた、同様の質問を発見したエラー
[Errno 13] Permission denied: 'D:/Python.xlsx'
を得る:
PermissionError [errno 13] when running openpyxl python script in Komodo
write to an open exceldocument
私はこのエラーを解決し、Excelで開いているファイルをPythonの仕事をするために何ができますか?私の現在のバージョンはPython 2.7です。また、可能であれば、xlsm
ファイルに同じ魔法を作る解決策はありますか?
UPD:
最初の質問のためのソリューションが存在しない場合は(たぶんGoogleドキュメントを除いては、@Alexのおかげで)、それは次のアルゴリズムをするコードを記述することが可能である実行します。 1.閉じるAN Excelアプリケーションと保存 2.スタッフをPythonで実行し、結果をExcelの目的地に保存します 3. ExcelアプリケーションでExcelファイルを開きますか?
私は方法を知っています2. 1と3の考えは?
UPD2:
xlwings
は本当に素晴らしい仕事をしていません!ちょうど私が必要なもの!ありがとう!
私は(ちょうど、他のユーザーがGoogleで検索して使用することができます)私のために働いたコードを提供したい:
import xlwings as xl
import time
wb = xl.Workbook.active()
sheet = wb.active
iter = 10
i = 0
while True:
i += 1
if i <= iter:
xl.Range("A1").value = i
time.sleep(1)
print(i)
else:
break
wb.save()
print("Done!")
Windowsがファイルにロックを適用している場合、これについては何もできません(これはWindows固有の問題です)。ファイルのコピーを使用する必要があります。 –