Я новичок в tkinter, и ниже приведен код, который я использую:
from tkinter import *
import pandas as pd
from tkinter import ttk
from openpyxl import Workbook
from openpyxl import load_workbook
import xlsxwriter
def show_entry_fields():
print("Fund Name: %s\nFund Symbol: %s \nIssue Date: %s \nChange Reason: %s " (e1.get(), e2.get(), e3.get(), e4.get()))
def submitReq():
FundName=e1.get()
FundSymbol=e2.get()
IssDate=e3.get()
ChReason=e4.get()
df=pd.DataFrame(columns=['Fund_Name','Fund_Symbol','Issue_date','Change_reason'])
df1=df.append({"Fund_Name":FundName,"Fund_Symbol":FundSymbol,"Issue_date":IssDate,
"Change_reason":ChReason}, ignore_index=True)
book = load_workbook('ESG.xlsx',read_only=False)
sheet = book.worksheets[0]
startrow =sheet.max_row
writer=pd.ExcelWriter('ESG.xlsx', engine='openpyxl',startrow=startrow)
df1.to_excel(writer, sheet_name='ESG1')
startrow+=1
writer.save()
def clear_text():
e1.delete(0, 'end')
e2.delete(0, 'end')
e3.delete(0, 'end')
e4.delete(0, 'end')
book = load_workbook('ESG.xlsx')
window = Tk()
window.title("GUI")
window.geometry('1250x900')
tab_control = ttk.Notebook(window)
tab1 = ttk.Frame(tab_control)
tab2 = ttk.Frame(tab_control)
tab3 = ttk.Frame(tab_control)
tab_control.add(tab1, text='First')
tab_control.add(tab2, text='Second')
tab_control.add(tab3, text='Third')
lbl1 = Label(tab1, text= 'Fund Name')
lbl1.grid(column=0, row=0)
lbl2 = Label(tab1, text= 'Fund Symbol')
lbl2.grid(column=0,row=3)
lbl3= Label(tab1, text= 'Issue Date')
lbl3.grid(column=0,row=5)
lbl4= Label(tab1, text= 'Change Reason')
lbl4.grid(column=0,row=7)
tab_control.pack(expand=1, fill='both')
e1 = Entry(tab1)
e1.grid(row=0, column=1)
e2 = Entry(tab1)
e2.grid(row=3, column=1)
e3 = Entry(tab1)
e3.grid(row=5, column=1)
e4 = Entry(tab1)
e4.grid(row=7, column=1)
Button(tab1,
text='Exit',
command=window.destroy).grid(row=15,
column=0,
sticky=W,
pady=4)
Button(tab1,
text='Show', command=show_entry_fields).grid(row=15,
column=1,
sticky=W,
pady=4)
Button(tab1,
text='Save', command=submitReq).grid(row=15,
column=3,
sticky=W,
pady=4)
Button(tab1, text='Next', command=clear_text).grid(row=15, column=5, sticky=W, pady=4)
window.mainloop()
Я ожидаю, что код будет сохранять данные в Excel при каждом нажатии кнопки сохранения. Кто-нибудь, пожалуйста, помогите мне исправить это. Я могу добавить только первую запись. Но я хочу, чтобы каждый раз, когда я нажимал «Сохранить», данные сохранялись в таблице Excel. Заранее спасибо ...