You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在无SQL的Python员工管理GUI中导入并编辑数据

简易员工管理系统功能完善求助

已完成功能

  • 员工数据录入、查看和导出的GUI界面
  • 将数据导出为Excel或CSV文件

待实现功能

  • 从Excel或CSV文件导入数据到GUI界面
  • 在GUI上编辑员工数据并将更新内容保存到文件

当前代码仅能把CSV文件内容打印到控制台,需要解决两个核心问题:

  1. 将CSV数据导入后显示在GUI中
  2. 实现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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 09:36:26