Python Tkinter如何将单选按钮点击值保存到Excel文件
Tkinter单选按钮选中值实时存入Excel实现方案
前置准备
先安装Excel文件处理依赖,打开命令提示符/终端执行以下命令:pip install openpyxl
核心修改逻辑
- 统一原有代码的变量类型:把单选按钮绑定的值从字符串改为整数,和
IntVar类型匹配,避免取值异常 - 点击事件触发时自动判断Excel文件是否存在:不存在则新建文件并写入表头,存在则直接加载已有文件
- 每次点击获取到选中值后,作为新行追加到Excel中,保存文件保证数据实时写入不丢失
完整修改后代码
from tkinter import * import tkinter as tk import os from openpyxl import Workbook, load_workbook # 记录文件保存在脚本同目录下 SAVE_FILE = "class_selection_record.xlsx" master = Tk() master.geometry("175x175") # 单选按钮绑定变量,默认值0代表无选中 v = IntVar(master, 0) # 单选按钮配置,值统一用整数类型 values = {"classe 1" : 1, "classe 2" : 2, "classe 3" : 3, "classe 4" : 4} def affiche (): selected_val = v.get() print(selected_val) # 判断文件是否存在,不存在则新建并写表头 if not os.path.exists(SAVE_FILE): wb = Workbook() ws = wb.active ws.append(["记录序号", "选中班级值"]) next_index = 1 else: wb = load_workbook(SAVE_FILE) ws = wb.active # 计算下一条记录的序号(表头占1行) next_index = ws.max_row # 追加本次选中记录 ws.append([next_index, selected_val]) wb.save(SAVE_FILE) wb.close() labelValue = tk.Label(master, text="""Choose your class affectation:""", justify = tk.LEFT, padx = 20).pack() for (text, value) in values.items(): Radiobutton(master, text = text, variable = v, command = affiche, value = value).pack(side =TOP, ipady = 5) mainloop()
效果说明
运行脚本后,每次点击单选按钮,控制台依旧会打印对应数值,同时同目录下会自动生成class_selection_record.xlsx文件,按点击顺序存储所有选中记录,和控制台输出顺序、数值完全一致。
内容的提问来源于stack exchange,提问作者Ramh
相关产品推荐
相关产品推荐

