openpyxl을 사용하여 데이터를 수집하고 스프레드 시트에 쓰는 스크립트를 만듭니다. 열려있는 동안 통합 문서를 저장하려고하면 permissionError가 발생하고 문서를 저장하지 않고 클립 보드에서 모든 내용을 제거합니다.PermissionError를 막기위한 Tkinter 창
스크립트를 실행하는 데 시간이 오래 걸리므로 누군가이 스크립트를 사용하는 사람이 통합 문서를 열어두면 두통이 생길 수 있습니다. 이를 방지하기 위해 사용자에게 permissionError 이벤트가 발생할 때까지 Excel 시트를 닫고 열 때까지 열린 상태로 유지할 수 있도록 tkinter 창을 구현하려고합니다.
나는 이것을 조금 복잡하게 만들고 있다고 생각하는데, 이것에 관해서는 이것이 최선의 방법이 아니라는 것을 알고있다. 이 작업을 수행하는 방법에 대한 조언을 주시면 감사하겠습니다.
이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')