如何在无SQL的Python员工管理GUI中导入并编辑数据
简易员工管理系统功能完善求助
已完成功能
- 员工数据录入、查看和导出的GUI界面
- 将数据导出为Excel或CSV文件
待实现功能
- 从Excel或CSV文件导入数据到GUI界面
- 在GUI上编辑员工数据并将更新内容保存到文件
当前代码仅能把CSV文件内容打印到控制台,需要解决两个核心问题:
- 将CSV数据导入后显示在GUI中
- 实现GUI编辑数据后保存到CSV文件的功能
以下是现有代码:
from csv import * from tkinter import * from tkinter import filedialog import tkinter.messagebox root = Tk() root.title("Employee Management System") root.geometry("700x350") root.maxsize(width=700, height=350) root.minsize(width=700, height=350) root.configure(background="dark gray") # 定义变量 main_lst=[] def OpenFile(): filepath=filedialog.askopenfilename() # print(filepath) # OR file=open(filepath,'r') print(file.read()) file.close() def Add(): lst=[txtFullname.get(),txtAddress.get(),txtAge.get(),txtPhoneNumber.get(),txtGender.get()] main_lst.append(lst) messagebox.showinfo("提示","数据添加成功") def Save(): with open("data_entry.csv","w") as file: Writer=writer(file) Writer.writerow(["姓名","地址","年龄","电话号码","性别"]) Writer.writerows(main_lst) messagebox.showinfo("提示","保存成功") def Clear(): txtFullname.delete(0,END) txtAddress.delete(0,END) txtAge.delete(0,END) txtPhoneNumber.delete(0,END) txtGender.delete(0,END) def Exit(): wayOut = tkinter.messagebox.askyesno("员工管理系统", "是否退出系统?") if wayOut > 0: root.destroy() return # 标签组件 labelFN = Label(root,text="姓名", font=('arial', 12, 'bold'), bd=10, fg="white", bg="dark blue").grid(row=1, column=0) labelAdd = Label(root, text="家庭地址", font=('arial', 12, 'bold'), bd=10, fg="white", bg="dark blue").grid(row=2, column=0) labelAge = Label(root,text="年龄", font=('arial', 12, 'bold'), bd=10, fg="white", bg="dark blue").grid(row=3, column=0) labelPhone_Num = Label(root, text="电话号码", font=('arial', 12, 'bold'), bd=10, fg="white", bg="dark blue").grid(row=4, column=0) labelGender = Label(root, text="性别", font=('arial', 12, 'bold'), bd=10, fg="white", bg="dark blue").grid(row=5, column=0) # 输入框组件 txtFullname = Entry(root, font=('arial', 12, 'bold'), bd=4, width=22, justify='left') txtFullname.grid(row=1, column=1) txtAddress = Entry(root, font=('arial', 12, 'bold'), bd=4, width=22, justify='left') txtAddress.grid(row=2, column=1) txtAge = Entry(root, font=('arial', 12, 'bold'), bd=4, width=22, justify='left') txtAge.grid(row=3, column=1) txtPhoneNumber = Entry(root, font=('arial', 12, 'bold'), bd=4, width=22, justify='left') txtPhoneNumber.grid(row=4, column=1) txtGender = Entry(root, font=('arial', 12, 'bold'), bd=4, width=22, justify='left') txtGender.grid(row=5, column=1) # 按钮组件 ButtonLoad = Button(text='加载文件', padx=10, pady=8, bd=4, font=('arial', 12, 'bold'), width=8, fg="black",bg="dark gray", command=OpenFile).grid(row=6, column=0) ButtonAdd = Button(text='添加记录', padx=10, pady=8, bd=4, font=('arial', 12, 'bold'), width=8, fg="black", bg="dark gray", command=Add).grid(row=6, column=1) ButtonSave = Button(text='保存', padx=10, pady=8, bd=4, font=('arial', 12, 'bold'), width=8, fg="black", bg="dark gray", command=Save).grid(row=6, column=2) ButtonClear = Button(text='清空', padx=10, pady=8, bd=4, font=('arial', 12, 'bold'), width=8, fg="black", bg="dark gray", command=Clear).grid(row=6, column=3) ButtonExit = Button(text='退出', padx=10, pady=8, bd=4, font=('arial', 12, 'bold'), width=8, fg="black",bg="dark gray", command=Exit).grid(row=6, column=4) ''' ButtonImport = Button(text='导入', padx=10, pady=8, bd=4, font=('arial', 12, 'bold'), width=8, fg="black",bg="dark gray", command=Import).grid(row=6, column=5) ''' root.mainloop()
当前系统界面包含姓名、地址、年龄、电话、性别等录入字段,以及加载文件、添加记录、保存、清空、退出等操作按钮。
内容的提问来源于stack exchange,提问作者Neamah
相关产品推荐
相关产品推荐

