再创建一个按钮,当用户点击时,将excel中的数据以表格形式显示,并且用户双击一行时,自动填写这一行的数据
时间: 2024-03-25 10:41:16 浏览: 18
好的,我来为你实现这个功能。代码如下:
```python
import tkinter as tk
import openpyxl
from tkinter import ttk
def save_to_excel():
# 获取用户名、密码和id
username = username_entry.get()
password = password_entry.get()
user_id = id_entry.get()
# 打开excel文件
wb = openpyxl.load_workbook('user_info.xlsx')
sheet = wb.active
# 在最后一行添加数据
row = sheet.max_row + 1
sheet.cell(row=row, column=1, value=username)
sheet.cell(row=row, column=2, value=password)
sheet.cell(row=row, column=3, value=user_id)
# 保存文件
wb.save('user_info.xlsx')
# 清空输入框
username_entry.delete(0, tk.END)
password_entry.delete(0, tk.END)
id_entry.delete(0, tk.END)
def display_data():
# 打开excel文件
wb = openpyxl.load_workbook('user_info.xlsx')
sheet = wb.active
# 创建表格
table = ttk.Treeview(root, columns=('col1', 'col2', 'col3'), show='headings')
table.column('col1', width=100, anchor='center')
table.column('col2', width=100, anchor='center')
table.column('col3', width=100, anchor='center')
table.heading('col1', text='用户名')
table.heading('col2', text='密码')
table.heading('col3', text='用户ID')
table.grid(row=4, column=0, columnspan=3, padx=10, pady=10)
# 填充数据
for row in sheet.iter_rows(min_row=2, values_only=True):
table.insert('', tk.END, values=row)
# 绑定双击事件
def on_double_click(event):
item = table.selection()[0]
values = table.item(item, 'values')
username_entry.delete(0, tk.END)
password_entry.delete(0, tk.END)
id_entry.delete(0, tk.END)
username_entry.insert(0, values[0])
password_entry.insert(0, values[1])
id_entry.insert(0, values[2])
table.bind('<Double-1>', on_double_click)
# 创建GUI界面
root = tk.Tk()
root.title('用户信息录入')
# 添加用户名、密码和id输入框
username_label = tk.Label(root, text='用户名:')
username_label.grid(row=0, column=0, padx=10, pady=10)
username_entry = tk.Entry(root)
username_entry.grid(row=0, column=1, padx=10, pady=10)
password_label = tk.Label(root, text='密码:')
password_label.grid(row=1, column=0, padx=10, pady=10)
password_entry = tk.Entry(root, show='*')
password_entry.grid(row=1, column=1, padx=10, pady=10)
id_label = tk.Label(root, text='用户ID:')
id_label.grid(row=2, column=0, padx=10, pady=10)
id_entry = tk.Entry(root)
id_entry.grid(row=2, column=1, padx=10, pady=10)
# 添加保存和显示按钮
save_button = tk.Button(root, text='保存', command=save_to_excel)
save_button.grid(row=3, column=0, padx=10, pady=10)
display_button = tk.Button(root, text='显示', command=display_data)
display_button.grid(row=3, column=1, padx=10, pady=10)
root.mainloop()
```
这段代码与之前的代码类似,只是添加了一个显示按钮。当用户点击该按钮时,程序会打开Excel文件,将其中的数据以表格形式显示在GUI界面上,并且绑定双击事件。当用户双击某一行时,程序会自动将该行的数据填充到输入框中,方便用户进行修改。同样,你可以将这段代码复制到你的本地环境中运行。