我对openpyxl的迭代有问题
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所以只返回了第一行。我已经更改了缩进,所以一切都很好...
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>)