Как загрузить значения ячейки 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() 

Вопрос : То, что я пытаюсь достичь, – загрузить обработанные ячейки 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
Вернитесь и отметьте свой вопрос как ответ, если это работает для вас или комментирует, почему нет.

  • Ввод / ввод значения в текстовое поле - Python 2.7
  • Выпадающее меню tkinter от excel
  • Interesting Posts

    Версия apache poi для языковых версий приводит к неправильной интерпретации формата даты

    Анализ с помощью python и сохранение в виде csv

    Добавление значения, если отмечена другая ячейка

    Формула Excel, которая помещает дату / время в ячейку, когда данные вводятся в другую ячейку в той же строке

    Почему мой макрос останавливается в строке 14, когда он должен перейти к строке 40?

    Копирование данных из одной книги в другую книгу на основе критерия

    Разрешить пользователю вставлять скриншот в пользовательскую форму vba

    Как создать текстовый файл в папке в виде файла операционной системы?

    Microsoft Database Database Engine – ошибка создания файла

    Очистка данных (чтение, изменение формата даты, вычисление) в Excel

    Excel VBA Colon

    Код VBA для сопоставления индексов по листу данных клиента – Обогащение данных

    Как объявить имя листа в качестве подстановочного знака?

    Подключение Excel VBA 2007 к доступу 2010 accdb, ошибка времени выполнения «Формат нераспознанной базы данных»

    Как указать правильный тип данных при вставке в MS Access с помощью строки SQL?

    Давайте будем гением компьютера.