如何将在 tkinter Combobox 中所做的选择导出到 Excel 或文本文件?
How to export selections made in tkinter Combobox to Excel or text File?
我正在开发一个程序,用于在商店之间内部订购零件。目前我的 GUI 运行良好,代码没有错误。
我想在 GUI 的底部有一个按钮,上面写着发送,它会读取所做的选择,然后将它们导出到后勤部门可以读取的文件中。我在网上搜索过,但似乎找不到 python.
这样的东西
我希望它将选择导出到 excel 电子表格中,但文本文件也可以,如果它可以编码以便于阅读。
由于我在最后 post 收到了不好的评论,我将 post 为两种选择框编写代码,我有。粘贴到 .py 文件中的代码将打开类似的 GUI。
from tkinter import *
from tkinter.ttk import *
master = Tk()
master.geometry("400x400")
def openiPhone5():
iPhone5 = Toplevel(master)
iPhone5.geometry("800x800")
Label(iPhone5,
text="iPhone 5").grid()
#Variabel til iPhone 5 Farver
iPhone5Colors =('Sort', 'Hvid')
#PARTS###
#OrginalSkærm
OGscreen = Combobox(iPhone5)
OGscreenColor = Combobox(iPhone5)
OGscreen['values'] = (1, 2, 3, 4, 5, "Text")
OGscreenColor['values'] = iPhone5Colors
OGscreen.current(0) # set the selected item
OGscreenColor.grid(column=3, row=7)
#CUSTOM
CustomAmount = Combobox(iPhone5)
CustomTEXT = Combobox(iPhone5)
CustomTEXT['text'] = (1, "Text")
CustomAmount['values'] = (1, 2, 3, 4, 5, "Text")
CustomAmount.current(0) # set the selected item
CustomAmount.grid(column=3, row=18)
CustomTEXT.grid(column=3, row=17)
Custom_lbl = Label(iPhone5,
text="Custom")
Custom_lbl.grid(column=1, row=17)
def openNewWindow1():
# Toplevel object which will
# be treated as a new window
newWindow1 = Toplevel(master)
# sets the title of the
# Toplevel widget
newWindow1.title("Apple")
# sets the geometry of toplevel
newWindow1.geometry("800x800")
# A Label widget to show in toplevel
Label(newWindow1,
text="iPhones").grid()
btn = Button(newWindow1,
text="iPhone 5",
command=openiPhone5)
最简单的方法是首先将一个变量与每个组合框相关联。然后,您可以将这些变量存储在列表或字典中。要获取数据,只需遍历列表或字典并在每个变量上调用 get
。
这是一个非常简单的例子,它创建了 10 个带有关联变量的组合框:
combo_vars = []
for i in range(10):
var = tk.StringVar(root, value=0)
combo_vars.append(var)
label = tk.Label(form, text=f"Value {i+1}:")
combo = ttk.Combobox(form, textvariable=var, width=20, values=list(range(5)))
label.grid(row=i, column=0, sticky="e")
combo.grid(row=i, column=1, sticky="w")
例如,假设您有一个名为 combo_vars
的变量,其中包含 StringVar
的实例(如上例所示),您可以获取所有值并在一个简单的循环中打印出来.有一种更简洁的方法可以使用列表理解来执行此操作,但我使用更冗长的方法来使其更易于理解。
values = []
for var in combo_vars:
value = var.get()
values.append(value)
这样,values
就有了一个值列表。然后你可以用这个列表做任何你想做的事:将它们转换成逗号分隔的列表,将它们写入数据库,将它们转换成 json,将它们保存到 excel 文件,或任何它是什么你需要做的。
例如,要将逗号分隔列表写入文件,您可以像这样使用 csv module:
import csv
...
with open("data.csv", "w") as csvfile:
writer = csv.writer(csvfile, values)
writer.writerow(values)
我正在开发一个程序,用于在商店之间内部订购零件。目前我的 GUI 运行良好,代码没有错误。
我想在 GUI 的底部有一个按钮,上面写着发送,它会读取所做的选择,然后将它们导出到后勤部门可以读取的文件中。我在网上搜索过,但似乎找不到 python.
这样的东西我希望它将选择导出到 excel 电子表格中,但文本文件也可以,如果它可以编码以便于阅读。
由于我在最后 post 收到了不好的评论,我将 post 为两种选择框编写代码,我有。粘贴到 .py 文件中的代码将打开类似的 GUI。
from tkinter import *
from tkinter.ttk import *
master = Tk()
master.geometry("400x400")
def openiPhone5():
iPhone5 = Toplevel(master)
iPhone5.geometry("800x800")
Label(iPhone5,
text="iPhone 5").grid()
#Variabel til iPhone 5 Farver
iPhone5Colors =('Sort', 'Hvid')
#PARTS###
#OrginalSkærm
OGscreen = Combobox(iPhone5)
OGscreenColor = Combobox(iPhone5)
OGscreen['values'] = (1, 2, 3, 4, 5, "Text")
OGscreenColor['values'] = iPhone5Colors
OGscreen.current(0) # set the selected item
OGscreenColor.grid(column=3, row=7)
#CUSTOM
CustomAmount = Combobox(iPhone5)
CustomTEXT = Combobox(iPhone5)
CustomTEXT['text'] = (1, "Text")
CustomAmount['values'] = (1, 2, 3, 4, 5, "Text")
CustomAmount.current(0) # set the selected item
CustomAmount.grid(column=3, row=18)
CustomTEXT.grid(column=3, row=17)
Custom_lbl = Label(iPhone5,
text="Custom")
Custom_lbl.grid(column=1, row=17)
def openNewWindow1():
# Toplevel object which will
# be treated as a new window
newWindow1 = Toplevel(master)
# sets the title of the
# Toplevel widget
newWindow1.title("Apple")
# sets the geometry of toplevel
newWindow1.geometry("800x800")
# A Label widget to show in toplevel
Label(newWindow1,
text="iPhones").grid()
btn = Button(newWindow1,
text="iPhone 5",
command=openiPhone5)
最简单的方法是首先将一个变量与每个组合框相关联。然后,您可以将这些变量存储在列表或字典中。要获取数据,只需遍历列表或字典并在每个变量上调用 get
。
这是一个非常简单的例子,它创建了 10 个带有关联变量的组合框:
combo_vars = []
for i in range(10):
var = tk.StringVar(root, value=0)
combo_vars.append(var)
label = tk.Label(form, text=f"Value {i+1}:")
combo = ttk.Combobox(form, textvariable=var, width=20, values=list(range(5)))
label.grid(row=i, column=0, sticky="e")
combo.grid(row=i, column=1, sticky="w")
例如,假设您有一个名为 combo_vars
的变量,其中包含 StringVar
的实例(如上例所示),您可以获取所有值并在一个简单的循环中打印出来.有一种更简洁的方法可以使用列表理解来执行此操作,但我使用更冗长的方法来使其更易于理解。
values = []
for var in combo_vars:
value = var.get()
values.append(value)
这样,values
就有了一个值列表。然后你可以用这个列表做任何你想做的事:将它们转换成逗号分隔的列表,将它们写入数据库,将它们转换成 json,将它们保存到 excel 文件,或任何它是什么你需要做的。
例如,要将逗号分隔列表写入文件,您可以像这样使用 csv module:
import csv
...
with open("data.csv", "w") as csvfile:
writer = csv.writer(csvfile, values)
writer.writerow(values)