用python语言写一个超市商品管理系统,包括增删改查排序,并使用tkinter实现界面,信息储存在excel表格中。给出整体代码使其能够正常运行,不会报错
时间: 2024-03-18 10:38:52 浏览: 148
好的,以下是一个简单的超市商品管理系统的Python代码,使用了Tkinter进行界面设计,使用了Pandas库来读写Excel表格:
```python
import pandas as pd
import tkinter as tk
from tkinter import ttk
# 读入商品信息
df = pd.read_excel('goods.xlsx')
# 定义界面
root = tk.Tk()
root.geometry('600x400')
root.title('超市商品管理系统')
# 定义Treeview组件
columns = list(df.columns)
treeview = ttk.Treeview(root, columns=columns, show='headings')
for col in columns:
treeview.heading(col, text=col)
treeview.grid(row=0, column=0, columnspan=2)
# 定义刷新函数
def refresh():
df = pd.read_excel('goods.xlsx')
treeview.delete(*treeview.get_children())
for idx, row in df.iterrows():
treeview.insert('', idx, values=list(row))
# 定义添加函数
def add():
name = name_entry.get().strip()
price = price_entry.get().strip()
if name and price:
df.loc[len(df)] = [name, price]
df.to_excel('goods.xlsx', index=False)
refresh()
name_entry.delete(0, tk.END)
price_entry.delete(0, tk.END)
# 定义删除函数
def delete():
selection = treeview.selection()
if selection:
for item in selection:
idx = int(treeview.item(item, 'values')[0])
df.drop(idx, inplace=True)
df.to_excel('goods.xlsx', index=False)
refresh()
# 定义修改函数
def edit():
selection = treeview.selection()
if selection:
item = selection[0]
idx = int(treeview.item(item, 'values')[0])
name = name_entry.get().strip()
price = price_entry.get().strip()
if name and price:
df.loc[idx] = [name, price]
df.to_excel('goods.xlsx', index=False)
refresh()
name_entry.delete(0, tk.END)
price_entry.delete(0, tk.END)
# 定义排序函数
def sort_by_name():
df.sort_values(by='name', inplace=True)
df.to_excel('goods.xlsx', index=False)
refresh()
def sort_by_price():
df.sort_values(by='price', inplace=True)
df.to_excel('goods.xlsx', index=False)
refresh()
# 添加输入框和按钮
tk.Label(root, text='名称').grid(row=1, column=0)
name_entry = tk.Entry(root)
name_entry.grid(row=1, column=1)
tk.Label(root, text='价格').grid(row=2, column=0)
price_entry = tk.Entry(root)
price_entry.grid(row=2, column=1)
tk.Button(root, text='添加', command=add).grid(row=3, column=0)
tk.Button(root, text='删除', command=delete).grid(row=3, column=1)
tk.Button(root, text='修改', command=edit).grid(row=4, column=0)
tk.Button(root, text='按名称排序', command=sort_by_name).grid(row=4, column=1)
tk.Button(root, text='按价格排序', command=sort_by_price).grid(row=5, column=0)
tk.Button(root, text='刷新', command=refresh).grid(row=5, column=1)
# 初始化界面
refresh()
root.mainloop()
```
这个代码的主要逻辑是:
1. 读入Excel表格中的商品信息,并在Tkinter的Treeview组件中显示出来
2. 定义添加、删除、修改、排序等操作,并实现将操作结果写入Excel表格中的功能
3. 在Tkinter界面中添加输入框和按钮,通过响应按钮的点击来触发相应的操作
4. 定义界面刷新函数,用来更新Treeview组件的显示,保证操作结果及时反映在界面上
这个代码的运行需要提前准备一个名为"goods.xlsx"的Excel表格,其中包含两列数据,分别是商品名称和价格。可以根据实际情况修改Excel表格的列名和数据。在运行代码时,会自动读取Excel表格中的数据,并将其显示在Tkinter的Treeview组件中。可以通过界面上的按钮来进行添加、删除、修改、排序等操作,并实时更新Excel表格和Treeview组件的显示。
阅读全文