Получение имен листов из openpyxl
У меня есть умеренно большой файл xlsx (около 14 МБ), и OpenOffice зависает, пытаясь его открыть. Я пытался использовать openpyxl для чтения содержимого, следуя этому учебнику. Фрагмент кода выглядит следующим образом:
from openpyxl import load_workbook
wb = load_workbook(filename = 'large_file.xlsx', use_iterators = True)
ws = wb.get_sheet_by_name(name = 'big_data')
Проблема в том, что я не знаю имя листа, а Sheet1/Sheet2 и т.д. не работает (возвращается объект NoneType). Я не мог найти документацию, сообщающую мне Как получить имена листов для xlsx файлов, используя openpyxl. Кто-нибудь может мне помочь?
Ответы
Ответ 1
Используйте свойство sheetnames
:
sheetnames
Возвращает список имен рабочих листов в этой рабочей книге.
Имена возвращаются в порядке листов.
Тип: список строк
print (wb.sheetnames)
Вы также можете получить объекты листа из wb.worksheets
:
ws = wb.worksheets[0]
Ответ 2
Как упоминалось в предыдущем ответе, вы можете получить список имен листов, используя ws.sheetnames
Но если вы знаете имена листов, вы можете получить этот объект листа:
ws.get_sheet_by_name("YOUR_SHEET_NAME")
Другой способ сделать это, как упоминалось в предыдущем ответе
ws['YOUR_SHEET_NAME']