我正在通过python-openpyxl库解析一些Excel文件。
我的目标是读取放置在某个单词或字母(如N)下的单元格。 因此,一旦找到N,代码应移到下面的单元格中,如果它包含有效数字,则将其放在列表中,否则将导致读取中断。 我在定义正确的条件时遇到问题。
for col_cells in sheet.iter_cols(min_col=2, max_col=2):
for cell in col_cells:
if cell.value == "N":
print (cell)
print ("N is Found")
break
N=[]; i=1; celln=cell
while celln.value =! 0:
cellb=cell.row + i
Nlist. append(sheet[cell.column+str(cellb)].value)
i=i+1
print(i)
celln=sheet[cell.column+str(cellb)]
答案 0 :(得分:1)
您不必中断整个循环,每个cell
对象都有其坐标,因此您可以使用这些对象依次获取下一个单元格。例如:
some_list = []
for col_cells in sheet.iter_cols(min_col=2, max_col=2):
for cell in col_cells:
if cell.value == "N":
try:
some_list.append(int(sheet['{}{}'.format(cell.column, cell.row+1)].value))
except ValueError:
continue
不是检查其有效数字,而是尝试将其更改为int
并在失败时捕获异常。请记住,在Python中,“获得宽恕比获得许可更容易”(EAFP)。