Openpyxl как отсечь полностью пустые строчки
Есть задача спарсить из Excel данные. Но по какой-то причине помимо необходимой мне информации, плодятся также и значения None (хотя использую data_only = True). Причём если я руками зайду и удалю все не нужные строки, то всё работает замечательно. В чём ошибка кода? Почему он может плодить None там, где никаких данных нет? Из за чего это вообще происходит? Для парсинга использую следующий код:
book = openpyxl.load_workbook(filename=file_name, data_only=True)
sheet = book.active
rng = [[redact_str(xx.value) for xx in x] for x in sheet[f"a1{get_column_letter(sheet.max_column)}{sheet.max_row}"]]
book.close()
for i, val in enumerate(rng[0]):
if val == 'Наименование нужного столбца 1':
for val in rng[1:]:
data["{Соответствующий ключ}"].append(val[i])
if val == 'Наименование нужного столбца 2':
for val in rng[1:]:
data["{Соответствующий ключ}"].append(val[i])
if val == 'Наименование нужного столбца 3':
for val in rng[1:]:
data["{Соответствующий ключ}"].append(val[i])
if val == "Наименование нужного столбца 4":
for val in rng[1:]:
data["{Соответствующий ключ}"].append(val[i])
Из идей только костыль, например, после подобного кривого парсинга, проверять по индексу в каждом списке значение None и если абсолютно каждое == "None", то просто удалять со всех списков этот индекс. Суть в том, что необходимо заложить также человеческий фактор, например, если человек заполнит лишь 1 столбец из 4, условно, нужно получить в 1 списке значение, а None для остальных будет уже нормальной ситуацией, которую я обработаю. Когда я руками удаляю строки из Excel, то как раз таки и происходит ситуация выше, которую я добиваюсь, но интересует вопрос, можно ли сделать парсинг изначально без костылей, скорее всего в openpyxl что-то подобное должно быть заложено, вот только я не нашёл, сколько не гуглил.