Как загрузить значения ячейки Excel в пустые текстовые поля в графическом интерфейсе tkinter после того, как файл был выбран и «Открыть файл» и загружен?
Я построил GUI с tkinter. Есть две кнопки, одна для загрузки листа excel и анализа всех ячеек и печать их значения. Кроме того, у меня есть серия пустых текстовых полей с заголовками. То, что я пытаюсь достичь, – загрузить обработанные ячейки 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()
- tkinter filedialog open метод странное поведение
- Строковая переменная в Xlsxwriter Python
- Я не могу создать книгу Excel с openpyxl, если я напишу код в классе Tkinter под определением
- Импортировать Excel с помощью tkinter и openpyxl
- Как я могу использовать tkinter для запроса пользователям сохранить DataFrame в файл Excel?
- Python - открытие, чтение, редактирование и сохранение файла Excel Excel xls после его выбора с помощью диалога выбора файлов / файлов
- Создайте раскрывающееся меню на Tkinter с данными из Excel
- tkinter написать в excel
- Циклические кнопки в tkinter и назначение функций
- Несколько ошибок в программе openpyxl GUI
- openpyxl Рабочий лист KeyError {0} не существует
- Функции привязки к кнопкам, созданным в цикле в tkinter
- Tkinter: Вставить ячейки Excel в разные виджеты входа
Вопрос : То, что я пытаюсь достичь, – загрузить обработанные ячейки excel каждый в переменную, а затем заполнить пустые текстовые поля значением ячейки
Вам не нужно использовать variable
, вы можете передать cell values
прямо в текстовое поле.
Например:
class Textbox(object): text = None series_of_textboxes = [Textbox(),Textbox(),Textbox(),Textbox()] # start reading from row 2 for i, row in enumerate( ws.iter_rows(min_row=2) ): series_of_textboxes[i].text = ' '.join(cell.value for cell in row) print( series_of_textboxes[0].text )
Выход :
Бундеслига 27.08.16 Гамбург Ингольштадт
Протестировано с помощью Python: 3.4.2 – openpyxl: 2.4.1
Вернитесь и отметьте свой вопрос как ответ, если это работает для вас или комментирует, почему нет.