我正在尝试阅读xlsx做文档,找到特定的通道并打印一个区域,但是没有打印无通道。当"无"在特定栏目中。
def some():
for r in range(1, ws.max_row):
for c in range(1, ws.max_column):
db = ws.cell(row=r, column=c)
if db.value == 'this one':
for rows in ws.iter_rows(min_row=r + 1, min_col=c - 1,
max_row=r + 30, max_col=c):
for cell in rows:
if cell.value is None:
if column_index_from_string(db.column) == c:
return
else:
print(cell.value, end=" ")
print()
此代码返回唯一的1个通道,然后打破头循环。
的输出:
1315 text 。
文件格式:https://drive.google.com/file/d/0B_bbUxPgcVESVGstWWRxV3k4emM/view。我无法解决这个问题。请原谅原生错误。我是新的python,只是在寻找答案。
答案 0 :(得分:0)
当您检查周期为None
时,您可以调用break
退出内循环,然后在返回之前获得更多逻辑,而不是返回。您也可以使用continue
跳过for循环。有关打破内循环的示例,请参见下文。
实施例;如果for cell in rows:
为cell.value
,则会停止None
循环:
for r in range(1, ws.max_row):
for c in range(1, ws.max_column):
db = ws.cell(row=r, column=c)
if db.value == 'My specific Value':
for rows in ws.iter_rows(min_row=r+1, min_col=c-1, max_row=r+30, max_col=c):
for cell in rows:
if cell.value is None:
if column_index_from_string(db.column) == c:
rtn = 1
break
else:
print(cell.value, end=" ")
print()
return rtn
第二个示例基于外部for循环的中断(循环的r范围):
def print_while_cell_is_not_none():
for r in range(1, ws.max_row):
for c in range(1, ws.max_column):
db = ws.cell(row=r, column=c)
if db.value == 'My specific Value':
for rows in ws.iter_rows(min_row=r + 1, min_col=c - 1,
max_row=r + 30, max_col=c):
for cell in rows:
if cell.value is None:
if column_index_from_string(db.column) == c:
return
else:
print(cell.value, end=" ")
第二个例子将破坏整个方法,从而打破for r in range
for循环。