У меня есть код для вставки данных в файл Excel из tkinter
GUI. После отправки данных текст все еще отображается в записи, и я хочу автоматически очистить текст или назначить его кнопке. Я пробовал это Как очистить виджет «Ввод» после нажатия кнопки в Tkinter? , но безуспешно
from datetime import date, datetime
from tkinter import *
from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font
import os
import openpyxl
wb = openpyxl.load_workbook('excel.xlsx') # selectie fisier
sheet = wb["Productie"] # selectie Fila
weekNumber = date.today().isocalendar()[1] # cautare numarul saptamanii
root = Tk()
root.title("Main Menu")
def write_to_xlsx():
model = e.get()
etapa = e2.get()
batch = e3.get()
qty = e4.get()
sn1 = e5.get()
ws = wb.active
maxim = ws.max_row + 1 # Definire capat de lista
# Imbinare celule
ws.merge_cells(start_row=maxim, start_column=1, end_row=maxim + 1, end_column=1) # A
ws.merge_cells(start_row=maxim, start_column=2, end_row=maxim + 1, end_column=2) # B
ws.merge_cells(start_row=maxim, start_column=3, end_row=maxim + 1, end_column=3) # C
ws.merge_cells(start_row=maxim, start_column=4, end_row=maxim + 1, end_column=4) # D
ws.merge_cells(start_row=maxim, start_column=5, end_row=maxim + 1, end_column=5) # E
ws.merge_cells(start_row=maxim, start_column=6, end_row=maxim + 1, end_column=6) # F
ws.merge_cells(start_row=maxim, start_column=7, end_row=maxim + 1, end_column=7) # G
ws.merge_cells(start_row=maxim, start_column=8, end_row=maxim + 1, end_column=8) # H
ws.merge_cells(start_row=maxim, start_column=24, end_row=maxim + 1, end_column=24) # X
ws.merge_cells(start_row=maxim, start_column=25, end_row=maxim + 1, end_column=25) # Y
# Introducere formule
weekNumber = date.today().isocalendar()[1] # cautare numarul saptamanii
ws.cell(column=1, row=maxim, value=weekNumber) # A-Week
now = datetime.now() # importare data si ora
dt_string = now.strftime('%d/%m') # formatare sa arate doar ziua si luna
ws.cell(column=2, row=maxim, value=dt_string) # B zi/luna
from openpyxl.styles import Alignment
ws.cell(column=3, row=maxim, value=model)
ws.cell(column=4, row=maxim, value=etapa)
ws.cell(column=5, row=maxim, value=batch)
ws.cell(column=6, row=maxim, value=int(qty))
ws.cell(column=7, row=maxim, value=int(sn1))
ws.cell(column=8, row=maxim, value=int(sn1 + qty))
rows = range(1, maxim + 1)
columns = range(1, 8)
for row in rows:
for col in columns:
sheet.cell(row, col).alignment = Alignment(horizontal='center', vertical='center', wrap_text=True)
wb.save("excel.xlsx")
global e2
e = Entry(root, width=20)
e.grid(row=0, column=1, sticky=W, padx=15)
l = Label(root, text="Model")
l.grid(row=0, column=0, sticky=W, padx=15)
e2 = Entry(root, width=20)
e2.grid(row=1, column=1, sticky=W, padx=15)
modela = Label(root, text="Etapa")
modela.grid(row=1, column=0, sticky=W, padx=15)
e3 = Entry(root, width=20)
e3.grid(row=2, column=1, sticky=W, padx=15)
model1 = Label(root, text="Batch")
model1.grid(row=2, column=0, sticky=W, padx=15)
e4 = Entry(root, width=20)
e4.grid(row=3, column=1, sticky=W, padx=15)
model2 = Label(root, text="Cantitate")
model2.grid(row=3, column=0, sticky=W, padx=15)
e5 = Entry(root, width=20)
e5.grid(row=4, column=1, sticky=W, padx=15)
model3 = Label(root, text="S/N")
model3.grid(row=4, column=0, sticky=W, padx=15)
submit = Button(root, text="Submit", command=write_to_xlsx)
submit.grid(row=1, column=2, sticky=E, padx=10)
root.mainloop()