Excel 可以对行或列进行分组,随后只需点击一次鼠标,就能隐藏或显示整组内容。这项功能称为“大纲与分组”。
大纲可以将复杂数据折叠为少量关键小计或汇总。例如,下面的工作表包含三个大纲分组。
第 2 至 11 行被分为第 1 级组,第 2 至 5 行以及第 7 至 10 行分别被分为第 2 级组。左侧线条称为“大纲级别”栏,栏上方的小数字表示对应级别。
点击每个第 2 级大纲旁的减号,就会折叠并隐藏数据,如下图所示。
减号会变成加号,表示大纲中的数据已隐藏。这体现了大纲的作用:只需点击两次鼠标,显示的数据就缩减为两个小计和一个总计。
最后,点击第 1 级大纲旁的减号,即可进一步折叠其余各行:
在 XlsxWriter 中使用大纲与分组
XlsxWriter 通过工作表的 set_row() 和 set_column() 方法设置大纲级别,从而实现分组:
worksheet.set_row(row, height, cell_format, options)
worksheet.set_column(first_col, last_col, width, cell_format, options)
具有相同大纲级别的相邻行或列,会归为同一个大纲组。
options 参数是字典,可以包含下列键:
‘hidden’
‘level’
‘collapsed’
可以按照下面的方式设置这些选项:
worksheet.set_row(0, 20, cell_format, {'hidden': True})
# Or use defaults for other properties and set the options only.
worksheet.set_row(0, None, None, {'hidden': True})
以下示例将第 1 至 4 行(索引从 0 开始)以及 B 至 G 列的大纲级别设置为 1。height 和 cell_format 参数使用默认值:
worksheet.set_row(1, None, None, {'level': 1})
worksheet.set_row(2, None, None, {'level': 1})
worksheet.set_row(3, None, None, {'level': 1})
worksheet.set_row(4, None, None, {'level': 1})
worksheet.set_column('B:G', None, None, {'level': 1})
要折叠行或列,应为需要隐藏的行/列设置 hidden 标志,并为显示折叠加号“+”的那一行/列设置 collapsed 标志:
worksheet.set_row(1, None, None, {'level': 1, 'hidden': True})
worksheet.set_row(2, None, None, {'level': 1, 'hidden': True})
worksheet.set_row(3, None, None, {'level': 1, 'hidden': True})
worksheet.set_row(4, None, None, {'level': 1, 'hidden': True})
worksheet.set_row(5, None, None, {'collapsed': True})
worksheet.set_column('B:G', None, None, {'level': 1, 'hidden': True})
worksheet.set_column('H:H', None, None, {'collapsed': True})
Excel 最多支持 7 个大纲级别,因此 level 参数的取值范围应满足 0 <= level <= 7。
更完整的示例见“大纲与分组示例”和“折叠大纲与分组示例”。
还可以通过工作表的 outline_settings() 方法设置其他大纲属性。
原文:Working with Outlines and Grouping。作者/来源:John McNamara 与 XlsxWriter 文档贡献者。本文依据所列原文整理为中文,代码、命令与配置示例保留原文。











暂无评论内容