Как скрыть внутренние группы контуров при максимизации внешней группы - PullRequest
2 голосов
/ 04 апреля 2019

Я написал скрипт на python, который группирует строки файла Excel с помощью функции XlsxWriter Outlines and Grouping .

В моем файле две группы, одна вложена в другую.Вот минимальный пример:

import xlsxwriter

workbook = xlsxwriter.Workbook('outline.xlsx')
worksheet = workbook.add_worksheet()

worksheet.set_row(1, None, None, {'level': 1, 'hidden': True})
worksheet.set_row(2, None, None, {'level': 2, 'hidden': True})
worksheet.set_row(3, None, None, {'level': 2, 'hidden': True})
worksheet.set_row(4, None, None, {'level': 1, 'hidden': True})

workbook.close()

Это создает обе группы в скрытом состоянии.Когда я максимизирую первую группу, вторая (внутренняя) группа также становится максимизированной.

Как я могу предотвратить максимизацию внутренней группы, когда внешняя группа максимизируется?

Единственный способ сделатьэто, насколько я знаю, состоит в том, чтобы максимизировать группы, а затем минимизировать внутреннюю, а затем внешнюю группу вручную.При сохранении, закрытии и повторном открытии группы не максимизируют обе стороны при максимизации внешней.Так что в Excel, очевидно, есть способ как-то хранить эту информацию.

1 Ответ

2 голосов
/ 04 апреля 2019

Вам необходимо установить свойство collapsed на нужном уровне. Увидеть Работа с контурами и группировкой раздел документов XlsxWriter.

Вот рабочий пример:

import xlsxwriter

workbook = xlsxwriter.Workbook('outline.xlsx')
worksheet = workbook.add_worksheet()

worksheet.set_row(1, None, None, {'level': 1, 'hidden': True})
worksheet.set_row(2, None, None, {'level': 2, 'hidden': True})
worksheet.set_row(3, None, None, {'level': 2, 'hidden': True})
worksheet.set_row(4, None, None, {'level': 1, 'hidden': True, 'collapsed': True})

workbook.close()

Выход:

enter image description here

...