Как проверить наличие пустых ячеек в Excel в python? - PullRequest
1 голос
/ 02 мая 2020

У меня есть рабочая книга из 12 листов, и каждый лист имеет некоторое значение в столбце А. Вся полезная информация начинается со строки 9, столбец 0 каждого листа. Как только ячейка (AX, 0) не имеет данных, она должна перейти на следующий лист. Здесь num - номер листа в рабочей тетради. Код ниже:

workbook = xlrd.open_workbook('example.xlsx')
row = 9
num = 0
col = 0

while True:
    worksheet = workbook.sheet_by_index(num)
    if worksheet.cell(row, col).value != xlrd.empty_cell.value:
        worksheet.cell(row, col).value
        row+=1
    else:
        if num != 12:
            num = num + 1
            row = 9

Я получаю следующую ошибку:

Файл "", строка 4, в файле worksheet.cell (row, col) .value! = xlrd.empty_cell.value: файл "C: \ Python27 \ lib \ site-packages \ xlrd \ sheet.py", строка 412, в ячейке self._cell_types [rowx] [colx], IndexError: список индексов из диапазон

Помоги мне !!!

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

Думаю, проблема в том, что если программа войдет в блок "else", то там будет запас, потому что там нет выхода, поэтому я предлагаю либо использовать (break), либо (return)

0 голосов
/ 02 мая 2020

Я думаю, вам следует добавить разрыв в while l oop, чтобы вы не l oop бесконечно.

if num != 12:
    num = num + 1
    row = 9
else:
    break

Edit

Другой Проблема в том, что если вы проверяете пустую ячейку. Основано на Проверка Openpyxl на пустую ячейку Проблема в том, что «если» всегда истинно, поэтому строка неограниченно увеличивается, и вы получаете индекс вне ошибки диапазона.

Если вы хотите проверить не пустую ячейку используйте это

if worksheet.cell(row, col).value != None:
    # Do stuff
...