在openpyxl中读取具有有效数字的excel单元格

时间:2018-07-02 15:03:02

标签: excel openpyxl

我正在通过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)]

1 个答案:

答案 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)。