Как извлечь ячейки, которые начинаются с указанной строки - PullRequest
0 голосов
/ 26 января 2019

Почему это возвращает ошибку «Ошибка типа: объект NoneType не повторяется»? Как извлечь клетки, начинающиеся с '1 _'?

Спасибо!

wb = openpyxl.load_workbook('sample.xlsx')
sheet = wb.get_sheet_by_name('strings')

for cell in list(sheet.columns)[3]:
    value = cell.value
    if value.startswith('1_'):
        print(value)

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Чтение официальной документации всегда хорошее место для начала.

wb = openpyxl.load_workbook('sample.xlsx')
sheet = wb['strings']

for cell in sheet['D']:
    value = cell.value
    if cell.value and value.startswith('1_'):
        print(value)
0 голосов
/ 26 января 2019

Эта ошибка скорее всего не ошибка загрузки вашего файла! Хотя вы можете использовать оператор печати, чтобы проверить это дважды. В таких модулях, как openpyxl и xlwings, если в ячейке нет данных, явно указанных в модуле, модуль возвращает значение None, поэтому вы, вероятно, пытаетесь выполнить строковую операцию со значением None. Вы можете попытаться исправить это следующим образом:

for cell in list(sheet.columns)[3]:
    value = cell.value
    if value: # ensure you are not reading an empty cell
        if value.startswith('1_'):
            print(value)

Тем не менее, без полной трассировки стека все, что мы можем сделать, - это рассуждать о том, почему вы получаете ошибку

...