Как я могу пропустить первые несколько строк листа Excel?

Используя openpyxl, я пытался читать с пятой строки некоторые файлы. Первые четыре строки файлов являются заголовком. Тогда основной контент имеет формат, отличный от заголовка. И я попробовал метод:

import openpyxl
file_name="xxx.xlsx"
wb = openpyxl.load_workbook(filename=file_name, use_iterators = True)
first_sheet = workbook.get_sheet_names()[0]
ws = workbook.get_sheet_by_name(first_sheet)

for index, row in enumerate(ws.iter_rows()):
    if start < index < stop:
        for c in row:
           print c.value

Всегда будет ошибка:

IndexError: индекс списка вне допустимого диапазона

Если я удалю первые четыре строки, данные можно будет легко прочитать в Python. Но таких файлов у меня сотни, каждый файл имеет заголовок на четыре строки. Удаление всех заголовков из файлов займет много времени.

Как правильно пропустить первые несколько строк при чтении с использованием openpyxl?


person user3634601    schedule 08.03.2015    source источник


Ответы (2)


Вы можете передать диапазон в ws.iter_rows('A4:Z256'), но вам, вероятно, лучше использовать ws.get_squared_range(1, 5,)

person Charlie Clark    schedule 09.03.2015

Вы можете пропустить первые N строки, передав необязательный аргумент min_row. Обратите внимание, что здесь используется индекс с основанием 1, поэтому min_row=2 начинается со второй строки, а min_row=5 пропускает первые четыре строки. Вы бы использовали что-то вроде этого:

for index, row in enumerate(ws.iter_rows(min_row=5)):

Полная iter_rows документация.

person MackM    schedule 19.07.2019