I'm trying to get PySimpleGUI to read specific excel cells. While the code in itself works, it doesn't return the correct cell value once it's used with PySimpleGUI. It only returns the headers, but not the other rows. Any ideas on how to fix it will be much appreciated!
'''
import PySimpleGUI as sg
import openpyxl
sg.theme('DefaultNoMoreNagging')
layout = [[sg.Text("Roster", pad=(30,30), font=("Arial", 30, 'bold'), size=(40,1), justification='c')],
[sg.Text("Upload Roster", font=("Arial", 20, 'bold'), pad=(50,0), size=(17,1)), sg.Button("Browse", font='Arial 20'), sg.Text("Student ID", font=("Arial", 20, 'bold'), pad=(30,0), size=(10,1)), sg.InputText(key='ID', font="Arial 20", background_color="#F7F9F9", size=(10,1))],
[sg.Text("Student Name", font=("Arial", 20, 'bold'), pad=(50,30), size=(17,1)), sg.Multiline(key='name', font="Arial 20", pad=(0,30), background_color="#F7F9F9", size=(15,1))]]
window = sg.Window("Roster", layout)
name = ''
while True:
event,values = window.read()
name = values['name']
if event == "Cancel" or event == sg.WIN_CLOSED:
break
elif event == "Browse":
sg.theme('DefaultNoMoreNagging')
layout = [[sg.T('Source File', font=('Arial', 20,'bold'))],
[sg.In(key='input', size=(25,1), background_color="#F7F9F9", font='Arial 20'), sg.FilesBrowse(target='input',font='Arial 15')],
[sg.OK(font='Arial 15', key='OK'), sg.Exit(font='Arial 15')]]
browse_window = sg.Window("File Browse", layout)
while True:
event,values = browse_window.read()
roster = openpyxl.load_workbook('sample.xlsx')
sheet = roster.active
columns = sheet.columns
if event == "Exit" or event == sg.WIN_CLOSED:
break
elif event == 'OK':
if roster:
for row in sheet.rows:
if row[2].value == 'ID':
window['name'].print(row[1].value)
print("First Name: ".format(row[0].value))
break
else:
sg.popup_error("Record not found", font="Arial 20")
browse_window.close()
window.close()
'''