Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何返回单个单元格值而不是整行。Excel到Python Tkinter_Python_Excel_Tkinter - Fatal编程技术网

如何返回单个单元格值而不是整行。Excel到Python Tkinter

如何返回单个单元格值而不是整行。Excel到Python Tkinter,python,excel,tkinter,Python,Excel,Tkinter,我想知道当我单击GetPrideful按钮时如何返回单个单元格值(A2)。而不是返回整个(A)列 当我尝试键入时: Prideful = ws['A2'] 而不是: Prideful = ws['A'] 单击“获取骄傲”按钮时出现此错误: “TypeError:'单元格'对象不可编辑” 以下是完整的代码: from tkinter import * from openpyxl.workbook import Workbook from openpyxl import load_workboo

我想知道当我单击GetPrideful按钮时如何返回单个单元格值(A2)。而不是返回整个(A)列

当我尝试键入时:

Prideful = ws['A2']
而不是:

Prideful = ws['A']
单击“获取骄傲”按钮时出现此错误:

“TypeError:'单元格'对象不可编辑”

以下是完整的代码:

from tkinter import *
from openpyxl.workbook import Workbook
from openpyxl import load_workbook

root = Tk()
root.title("The Book of Wisdom")
root.geometry("500x500")

wb = Workbook()
wb = load_workbook('Test_Workbook.xlsx')
ws = wb.active


Prideful = ws['A']
Happy = ws['B']

# Prideful Button ------------------------------------------------

def Prideful_list():
    list = '' 
    for cell in Prideful:
        list = f'{list + str(cell.value)}\n'
        Prideful_label.config(text=list)


button_Prideful = Button(root, text="Get Prideful", command=Prideful_list)
button_Prideful.pack()

Prideful_label = Label(root, text="")
Prideful_label.pack()

# Happy Button ------------------------------------------------

def Happy_list():
    list = ''
    for cell in Happy:
        list = f'{list + str(cell.value)}\n'
        Happy_label.config(text=list)

button_Happy = Button(root, text="Get Happy", command=Happy_list)
button_Happy.pack()

Happy_label = Label(root, text="")
Happy_label.pack()



root.mainloop()
# END ==============================================================

正如错误消息所说,您尝试在Cell对象上迭代。 您将
ws['A2']
设置为
Prideful
,并在
Prideful
上执行for循环,但似乎Cell对象不支持迭代

如果希望为代码添加一些灵活性,以便可以基于行或列进行迭代,请尝试:

for row in range(x):
    for column in range(y):
        value = ws.cell(row, column).value

如果您使用
Prideful=ws['A2']
,则不应在
Prideful_list()
函数中使用for循环,因为
Prideful
只有一个单元格数据。感谢您的帮助!