Openpyxl и скрытые / скрытые листы Excel

У меня есть следующий код, который считывает данные из текстового файла с разделителями табуляции, а затем записывает их на указанный лист в существующей книге Excel. Переменные "workbook", "write_sheet" и "text_file" вводятся пользователем

tab_reader = csv.reader(text_file, delimiter='t')
xls_book = openpyxl.load_workbook(filename=workbook)
sheet_names = xls_book.get_sheet_names()
xls_sheet = xls_book.get_sheet_by_name(write_sheet)
for row_index, row in enumerate(tab_reader):
        number = 0
        col_number = first_col
        while number < num_cols:
                cell_tmp = xls_sheet.cell(row = row_index, column = col_number)
                cell_tmp.value = row[number]
                number += 1
                col_number += 1
xls_book.save(workbook)

однако, когда я запускаю этот код на уже существующей "книге", в которой" рабочий лист " является скрытой вкладкой, вывод отображает вкладку. Я думаю, причина в том, что openpyxl не изменяет файл, а создавать новый файл. Есть есть простой способ сказать python, чтобы проверить, скрыт ли лист, а затем вывести скрытый или не скрытый лист на основе того, выполняется ли условие?

спасибо!

2 ответов


в настоящее время мы не поддерживаем скрытие листов в openpyxl, поэтому это просто игнорируется при чтении файла и, следовательно, теряется при его сохранении. Я не думаю, что это будет слишком сложно добавить. Пожалуйста, отправьте запрос на Bitbucket.

[обновление]

функция теперь доступна:

ws.sheet_state = 'hidden'

или на самом деле xls_sheet.sheet_state = 'hidden' в вашем конкретном случае.


комментарий Чарли Кларка верен:

ws.sheet_state = 'hidden'

это работает для меня.