python中用tkinter创建一个窗体,用于填写访客记录,其中需要填写的字段如下:客户名称(必填选项)、礼品(非必填选项)、礼品价值(非必填选项)、客户类型(必填选项且可以选择新客户、老客户),在创建一个提交按钮,当用户点击提交按钮时,获取现在的日期填入根目录下命名为访客信息的Excel文件中Sheet1的第一列的最后一个空行,将客户名称字段填入根目录下命名为访客信息的Excel文件中Sheet1的第二列的最后一个空行,将礼品字段填入根目录下命名为访客信息的Excel文件中Sheet1的第八列的最后一个空行,将礼品价值字段填入根目录下命名为访客信息的Excel文件中Sheet1的第九列的最后一个空行,将客户类型字段填入根目录下命名为访客信息的Excel文件中Sheet1的第十列的最后一个空行
时间: 2023-06-09 22:02:05 浏览: 183
使用Python的tkinter设计一个yh选项选择APP.zip
好的,您的问题我已经记录下来了。为了满足您的需求,我将为您提供一个使用tkinter和openpyxl库创建窗口并添加提交按钮的Python代码。您可以在其中添加您的逻辑以实现向Excel文件中添加数据的功能。
```python
import tkinter as tk
from tkinter import messagebox
from datetime import datetime
from openpyxl import load_workbook
class VisitorInfoForm:
def __init__(self, root):
# 创建窗口
self.root = root
self.root.title("访客记录")
self.root.geometry("400x300")
# 创建客户名称标签和输入框
tk.Label(self.root, text="客户名称*:").grid(row=0, column=0, padx=10, pady=10)
self.customer_name_entry = tk.Entry(self.root)
self.customer_name_entry.grid(row=0, column=1, padx=10, pady=10)
# 创建礼品标签和输入框
tk.Label(self.root, text="礼品:").grid(row=1, column=0, padx=10, pady=10)
self.gift_entry = tk.Entry(self.root)
self.gift_entry.grid(row=1, column=1, padx=10, pady=10)
# 创建礼品价值标签和输入框
tk.Label(self.root, text="礼品价值:").grid(row=2, column=0, padx=10, pady=10)
self.gift_value_entry = tk.Entry(self.root)
self.gift_value_entry.grid(row=2, column=1, padx=10, pady=10)
# 创建客户类型标签和下拉菜单
tk.Label(self.root, text="客户类型*:").grid(row=3, column=0, padx=10, pady=10)
self.customer_type_var = tk.StringVar()
self.customer_type_var.set("新客户")
self.customer_type_menu = tk.OptionMenu(self.root, self.customer_type_var, "新客户", "老客户")
self.customer_type_menu.grid(row=3, column=1, padx=10, pady=10)
# 创建提交按钮
self.submit_button = tk.Button(self.root, text="提交", command=self.submit_form)
self.submit_button.grid(row=4, column=0, columnspan=2, padx=10, pady=10)
# 提交表单的方法
def submit_form(self):
# 获取表单数据
customer_name = self.customer_name_entry.get()
gift = self.gift_entry.get()
gift_value = self.gift_value_entry.get()
customer_type = self.customer_type_var.get()
# 校验必填字段
if not customer_name:
messagebox.showerror("错误", "客户名称不能为空!")
return
if not customer_type:
messagebox.showerror("错误", "客户类型不能为空!")
return
# 打开Excel文件并定位到Sheet1
wb = load_workbook("访客信息.xlsx")
ws = wb["Sheet1"]
# 获取最后一行的行号
last_row = ws.max_row + 1
# 将当前日期填写到第一列的最后一个空行
date = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
ws.cell(row=last_row, column=1, value=date)
# 将客户名称填写到第二列的最后一个空行
ws.cell(row=last_row, column=2, value=customer_name)
# 如果有礼品,将礼品填写到第八列的最后一个空行
if gift:
ws.cell(row=last_row, column=8, value=gift)
# 如果有礼品价值,将礼品价值填写到第九列的最后一个空行
if gift_value:
ws.cell(row=last_row, column=9, value=gift_value)
# 将客户类型填写到第十列的最后一个空行
ws.cell(row=last_row, column=10, value=customer_type)
# 保存Excel文件
wb.save("访客信息.xlsx")
# 提示提交成功
messagebox.showinfo("成功", "表单提交成功!")
# 创建窗口并运行
root = tk.Tk()
form = VisitorInfoForm(root)
root.mainloop()
```
希望这份代码能够帮到您,如果您还有其他问题或需求,请继续向我提问,我会尽力为您解答!
阅读全文