我正在創建一個腳本,收集數據並使用openpyxl將其寫入電子表格。在打開工作簿時嘗試保存工作簿會導致出現permissionError並從剪貼板中刪除所有內容而不保存文檔。Tkinter窗口,以防止PermissionError
由於腳本需要很長時間才能執行,因此如果有人使用腳本將工作簿打開,則可能會非常頭痛。爲了防止出現這種情況,我試圖實現一個tkinter窗口,告訴用戶在發生permissionError時關閉Excel表格,並保持打開狀態直到他們這樣做。
我想我會讓這有點過於複雜,而且我知道這不是最好的解決方法。我真的很感激有關如何以正確的方式做到這一點的任何提示。下面是代碼,因爲我有現在:
import openpyxl as op
import tkinter
class warning:
def __init__(self, root):
self.root = root
self.root.title('WARNING')
self.text = tkinter.Label(root, text = 'Please close spreadsheet, then press "Ok" to proceed.')
self.text.grid(row = 1)
self.frame = tkinter.Frame(root)
self.button = tkinter.Button(self.frame, text = 'Ok', command = tryToSave(book, 'companies.xlsx')).grid(row = 2, column = 0)
self.frame.grid(row = 2)
def close(self):
self.root.destroy()
def tryToSave(book, name):
message = tkinter.Tk()
functionality = warning(message)
try:
book.save(name)
functionality.close()
except PermissionError:
message.mainloop()
tryToSave(book, name)
book = op.load_workbook('C://Users/Alec/envs/RoboEmily/companies.xlsx')
tryToSave(book, 'C://Users/Alec/envs/RoboEmily/companies.xlsx')