此代码成功将 Excel 数据加载到网格条目中,允许用户根据需要进行修改。我现在希望在用户使用 pandas 在 DataFrame 中进行更改后保存所有数据,确保保留列标题。请提供适当的代码以将网格条目数据保存到 DataFrame 中。
import tkinter as tk
import pandas as pd
root = tk.Tk()
df = pd.read_excel('c:/erp/student2.xlsx',header=None)
for i, row in df.iterrows():
c = 0
for cell in row:
if i==0:
for k in range(df.shape[1]): tk.Label(root, fg="red", font=("Helvetica", 16)).grid(row=i, column=k) # run ok fill my df data into lable
tk.Label(fg="red", font=("Helvetica", 16),text=cell).grid(row=i, column=c) # run ok fill my df data into lable
else:
b3 = tk.Entry(root)
b3.grid(row=i, column=c)
if i==3 and c==2: b3.config(bg="green")
b3.insert(0,cell)
c += 1
root.mainloop()
import tkinter as tk
import pandas as pd
df = pd.read_excel('c:/erp/student2.xlsx', header=None)
root = tk.Tk()
entry_widgets = []
for i, row in df.iterrows():
row_entries = []
for c, cell in enumerate(row):
if i == 0:
tk.Label(root, fg="red", font=("Helvetica", 16), text=cell).grid(row=i, column=c)
else:
entry = tk.Entry(root)
entry.grid(row=i, column=c)
entry.insert(0, cell)
row_entries.append(entry)
if row_entries:
entry_widgets.append(row_entries)
def save_data():
for i, row_entries in enumerate(entry_widgets):
for c, entry in enumerate(row_entries):
df.iloc[i + 1, c] = entry.get()
df.to_excel('c:/erp/student2_modified.xlsx', index=False, header=False)
print("Data saved successfully!")
save_button = tk.Button(root, text="Save Data", command=save_data)
save_button.grid(row=len(df), column=0, columnspan=df.shape[1])
root.mainloop()