我想在Excel行中找到第一个空白单元格值,然后将该值的数值坐标(即'B2' = 2,2
(传递回变量。
如果单元格有一个值,那么它就可以了,并返回坐标。我已经使用进行了测试
for row in sta_wb_primetime.iter_rows(min_row=start_row, max_row=end_row, min_col=start_col):
for cell in row:
***if cell.value is not None:***
return cell.row, cell.column`
然而,当我运行正确的代码块时:
#Find start point for Excel pasting (Master File)
def find_start_col(start_row, end_row, start_col):
for row in wb.iter_rows(min_row=start_row, max_row=end_row, min_col=start_col):
for cell in row:
if cell.value is None:
return cell.row, cell.column
break
else:
continue # only executed if the inner loop did NOT break
break # only executed if the inner loop DID break
sun_row, sun_col = find_start_col(start_row=3, end_row=3, start_col=2)
mon_row, mon_col = find_start_col(start_row=12, end_row=12, start_col=2)
... (ongoing for rest of week)
我得到这个:
Traceback(最后一次调用(:文件"C:\Users/mattj/Desktop/Python Scripts/ScratchPad/dev_Scripts/tester_File.py",第49行,位于sun_row,sun_col=find_start_col(start_row=3,end_row=3,start_col=2(TypeError:无法解压缩不可迭代的NoneType对象
我只需要找到第3行的第一个空白单元格,然后返回coords
我想我找到了一个解决办法。Openpyxl似乎不喜欢在值为None时返回结果,但在not None
时对contine
来说似乎可以,并将结果作为else
条件返回。
for row in wb.iter_rows(min_row=start_row, max_row=end_row, min_col=start_col):
for cell in row:
# print(cell)
if cell.value is not None:
continue
else:
return cell.row, cell.column
else:
continue # only executed if the inner loop did NOT break
希望这能帮助其他人!我仍然很想知道如何扭转条件导致的成功结果
感谢所有