openpyxl-无法遍历excel行

问题描述 投票:-1回答:1

我对openpyxl的迭代有问题

enter image description here

wb = openpyxl.load_workbook(pfad,read_only=True)
sheet = wb.active
max_row = sheet.max_row    
for row in sheet["A1":"B4"]:
    print(row)
    for cell in row:
        print(cell.coordinate)

我应该获得从A1到B4的坐标的响应。但是我只得到了A1到B1:

(<ReadOnlyCell 'Tabelle1'.A1>, <ReadOnlyCell 'Tabelle1'.B1>)
A1
B1

如果我使用用于sheet.iter_rows(min_row = 1,max_row = 4,min_col = 1,max_col = 2)中的行]:而不是对于工作表中的行[“ A1”:“ B4”],我得到了相同的结果

这意味着,我无法遍历2.,3。和4.行

我不知道为什么它不起作用。也许我忽略了什么?谢谢你的帮助!

========================问题已经解决了它是函数的一部分,我以错误的方式插入了“ return”。...

========================另外

该函数看起来像:

def excel_to_dict(pfad):
    wb = openpyxl.load_workbook(pfad,read_only=True)
    sheet = wb.active
    list1 = []
    max_row = sheet.max_row
    print(max_row)
    for row in sheet["A1":f"A{max_row}"]:
        print(row)
        for cell in row:
            print(cell.coordinate)
            c_value = cell.value
            print(c_value)
            list1.append(c_value)

        return list1

看到...?错误的缩进格式return所以只返回了第一行。我已经更改了缩进,所以一切都很好...

python excel openpyxl
1个回答
0
投票
您可以仅使用sheet.rows获取所有行

>>> wb = openpyxl.load_workbook("excel.xlsx", read_only=True) >>> sheet = wb.active >>> rows = sheet.rows >>> for row in rows: ... print(row) ... (<ReadOnlyCell 'Sheet1'.A1>, <ReadOnlyCell 'Sheet1'.B1>) (<ReadOnlyCell 'Sheet1'.A2>, <ReadOnlyCell 'Sheet1'.B2>) (<ReadOnlyCell 'Sheet1'.A3>, <ReadOnlyCell 'Sheet1'.B3>) (<ReadOnlyCell 'Sheet1'.A4>, <ReadOnlyCell 'Sheet1'.B4>)

© www.soinside.com 2019 - 2024. All rights reserved.