从用户输入创建python excel单元格

从用户输入创建python excel单元格,python,tkinter,Python,Tkinter,我正在尝试使用tkinter从用户那里获取输入。它需要一个号码。然后我想取这个数字并创建excel单元格的数量。我有自己的“excelcells”函数,但当我试图将变量x作为一个数字并将其转换为一个列表时,我会遇到转换错误,我无法克服 from tkinter import * window = Tk() Label(window, text='Number of Cells').grid(row=0) e1 = Entry(window) e1.grid(row=0, column=1)

我正在尝试使用tkinter从用户那里获取输入。它需要一个号码。然后我想取这个数字并创建excel单元格的数量。我有自己的“excelcells”函数,但当我试图将变量x作为一个数字并将其转换为一个列表时,我会遇到转换错误,我无法克服

from tkinter import *

window = Tk()

Label(window, text='Number of Cells').grid(row=0)
e1 = Entry(window)
e1.grid(row=0, column=1)
get = e1.get()
numfinal = int(get)


x = []

for i in range(0,int(numfinal)):
    x.append(i)

def excelcells(x):
    height = 1
    for i in range(height):
        for j, val in enumerate(x):
            b = Entry(window)
            b.insert(0, val)
            b.grid(row=i, column=j)
        window.mainloop()


Button(window, text='Create', command=excelcells(x)).grid()

window.mainloop()
这是我得到的错误“无法将字符串转换为浮点:'get'”

单击“创建”按钮时,如何将x列表传递给“excelcells”函数?并将输入窗口的字符串转换为int

第2部分:

如何将get变量从字符串转换为int


当前错误:以10为基数的int()的文本无效:“”

这里有几个问题。 首先,命令在

按钮(窗口,text='Create',command=excelcells(x)).grid()

应该是一个函数,编写
excelcells(x)
实际上调用函数而不是传递它。(可以使用
command=lambda x:excelcells(x)
完成,但这并不是您真正想要的)

现在,导致错误的问题是该位:

get = e1.get()
numfinal = int(get)
在创建条目后立即按顺序执行,因此您在程序有机会访问window.mainloop()之前读取,该窗口弹出并等待用户交互

第三个问题是在函数中调用mainloop,这将在以后导致不必要的行为

总之,我相信你想要的是这样的:

从tkinter导入*
window=Tk()
标签(窗口,text='单元格数')。网格(行=0)
e1=入口(窗口)
e1.网格(行=0,列=1)
def excelcells():
get=int(e1.get())
对于范围内的i(获取):
b=入口(窗口)
b、 插入(0,i)
b、 网格(行=i+2,列=0)
按钮(窗口,text='Create',command=excelcells).grid()
window.mainloop()

float('get')
?或者你的意思是
float(get)
command=excelcells(x)
应该是
command=lambda:excelcells(x)
。请参阅以了解至少部分问题。@jizhaosama是的,很抱歉这是以前的错误。它仍然会抛出一个getmy错误,问题是如何将get从字符串转换为int?我的标签(窗口,text='Number of Cells')。网格(行=0)e1=Entry(窗口)e1.grid(行=0,列=1)get=e1.get()numfinal=int(get)x=[]对于范围(0,int(numfinal)):x.append(i)错误:以10为基数的int()的文本无效:“”