我有一个列,其中包含学生标记的多个值,两者之间存在间隙。我需要在列中的空白单元格之前选择最后一个值。
我正在进行下面的检查,直到下一个单元格为None并尝试保存该值。但不知怎的,我的while循环运行没有停止,虽然计数器正确递增。如果我使用IF执行类似的逻辑,它会按预期正确打印每个下一个值。
for cell in row:
if cell.value == "TEST level":
print("Marks:")
row_num=1
while ("{1}".format(cell.value, cell.offset(row=row_num, column=0).value)) is not None:
print("Inside While loop")
last_marks = "{1}".format(cell.value, cell.offset(row=row_num, column=0).value)
row_num=row_num+1
print(last_marks)
我无法找到逻辑出错的地方。有人可以指出我的错误并让我朝着正确的方向前进吗?谢谢。
代码现在已不完整,但您不断将行计数器重置为1,而您的while条件始终为true。将代码分解为单独的部分更有意义:首先,找到相关的单元格;第二,对该列中的其余单元格执行您想要执行的操作。从你正在搜索的代码中仍然不清楚。
for row in ws:
for cell in row:
if cell.value == "TEST level":
break
for row in ws.iter_rows(min_row=cell.row+1, min_col=cell.column, max_col=cell.column):
cell = row[0]
print("Last marks {0} {1}".format(cell.coordinate, cell.value))
这似乎与您的代码相匹配,但不一定是您问题中的逻辑。