该函数是否可以从 Tk 的导入条目中获取值?

问题描述

所以我想运行 Tk() 并在那里导入一些值。然后将通过一个函数检查这些值,该函数将替换 excel 中特定单元格中的值。与一个导入条目匹配的单元格。我的挑战是,如果我手动将值放入程序中,该函数将起作用并替换,但如何从我输入的 Tk() 中读取值?我做了一个按钮,以便在我导入输入字段中的值后该功能将运行,但仍然没有。 replace() 函数中的“sntake”和“sngive”似乎不起作用......我错过了什么?

代码

from tkinter import *
import pandas as pd
from xlutils.copy import copy
from openpyxl import *
from openpyxl.utils.cell import get_column_letter
import openpyxl



app = Tk()

app.geometry("500x500")

app.title("S/N Management")

heading = Label(text="S/N Management",fg="black",bg="green",width="500",height="3",font="10")

heading.pack()

sngive_text = Label(text="S/N of the delivered ")
sntake_text = Label(text="S/N of the recieved  ")

sngive_text.place(x=15,y=80)
sntake_text.place(x=15,y=160)

sngive = StringVar()
sntake = StringVar()


sngive_entry = Entry(textvariable=sngive,width="30")
sntake_entry = Entry(textvariable=sntake,width="30")


sngive_entry.place(x=15,y=100)
sntake_entry.place(x=15,y=180)

def replace():
    wb = openpyxl.load_workbook('Tracker.xlsx')
    wb.sheetnames
    sheet = wb["serials"]
    amountOfRows = sheet.max_row
    amountOfColumns = sheet.max_column

    for i in range(amountOfColumns):
        for k in range(amountOfRows):
            cell = str(sheet[get_column_letter(i+1)+str(k+1)].value)
            if( str(cell) == sntake):
                newCell = sngive
                sheet[get_column_letter(i+1)+str(k+1)]=newCell

                wb.save('tracker_updated.xlsx')



button = Button(app,text="Submit Data",command=replace,width="30",height="2",bg="grey")

button.place(x=140,y=420)


mainloop()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)