0
我用tkinter构建了一个GUI。有两个按钮,一个用于加载Excel表格并解析所有单元格并打印它们的值。另外,我有一系列带有标题的空文本框。我想要实现的是将解析后的Excel单元格加载到一个变量中,然后用单元格值(即所讨论的变量)填充空的文本框。任何指针将不胜感激。这里是我到目前为止的代码:如何在tkinter GUI中的文本被“打开文件”菜单选择并加载后,将Excel单元格值加载到空的文本框中?
#!/usr/bin/python3
from tkinter import filedialog
from tkinter import *
import openpyxl
from openpyxl import load_workbook
#Define Window Geometry
main = Tk()
main.geometry("1024x768")
main.title("Window Title")
#Define Empty Cells to be Filled in by Excel File & Calculation
def OpenDataInputSpreadsheetCallBack():
main.iconify()
file_path = filedialog.askopenfilename(initialdir = "file_path_goes_here",title = "Choose Input Spreadsheet",filetypes = (("Excel 2010 files","*.xlsx"),("Excel 2003 Files","*.xls")))
wb = load_workbook(filename = file_path, read_only=True)
ws = wb.active
for row in ws.iter_rows():
for cell in row:
if (cell.value==None):
pass
else:
print(cell.value)
#
#
#Function to display empty rows and columns
#
height = 5
width = 6
for x in range(1,height+1): #Rows
for y in range(width): #Columns
b = Entry(main, text='')
b.grid(row=x, column=y)
#
# Define Buttons
b1 = Button(main, text = "Open Data Input Spreadsheet", command = OpenDataInputSpreadsheetCallBack)
b1.place(x = 1,y = 120)
b2 = Button(main, text='Quit', command=main.destroy)
b2.place(x = 1,y = 150)
##
##
### Initialize Column Headers
Label(main, text="Header1").grid(row=0, column=0, sticky=W)
Label(main, text="Header2").grid(row=0, column=1, sticky=W)
Label(main, text="Header3").grid(row=0, column=2, sticky=W)
Label(main, text="Header4").grid(row=0, column=3, sticky=W)
Label(main, text="Header5").grid(row=0, column=4, sticky=W)
Label(main, text="Header6").grid(row=0, column=5, sticky=W)
###
# Define a function to close the window.
def quit(event=None):
main.destroy()
# Cause pressing <Esc> to close the window.
main.bind('<Escape>', quit)
#
#
main.mainloop()
从你的'xlsx'显示一些**行数据** – stovfl
感谢您的回复。 当我加载xlsx文件并解析它时,会出现以下内容(第一行(“联盟”到“离开”)是标题,低于我要在GUI中显示的数据 - 标题显示为OK)。这是一个样本行,完整的xlsx拥有这个足球联赛的所有装置。 联赛|日期|主页|客场 Bundesliga | 27.08.16 |汉堡|因戈尔施塔特 – Stam