Читайте ячейки Excel с действительными числами в openpyxl - PullRequest
0 голосов
/ 02 июля 2018

Я анализирую некоторые файлы Excel через python - библиотека openpyxl.

Моя цель - прочитать ячейки, расположенные под определенным словом или буквой, например 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 голосов
/ 04 июля 2018

Вам не нужно прерывать весь цикл, каждый объект 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 ).

...