如何用openpyxl折叠Excel中所有已存在的分组?
使用openpyxl折叠已有列分组至0级(行列保持可见)
可行,openpyxl完全支持操作已存在的列分组,无需创建新大纲,就能实现将所有分组折叠至0级且保持行列可见的需求。
实现代码
from openpyxl import load_workbook # 加载目标工作簿与工作表 wb = load_workbook("your_input_file.xlsx") ws = wb["目标工作表名称"] # 替换为实际工作表名,或用wb.active取当前活动表 # 处理列分组:折叠所有非0级分组,同时强制列保持可见 for col_key in ws.column_dimensions: col_dim = ws.column_dimensions[col_key] # 仅对有大纲层级的列进行操作 if col_dim.outline_level > 0: col_dim.collapsed = True # 将分组设置为折叠状态 col_dim.hidden = False # 确保列不被隐藏 # 若需处理行分组,可使用以下代码块 # for row_key in ws.row_dimensions: # row_dim = ws.row_dimensions[row_key] # if row_dim.outline_level > 0: # row_dim.collapsed = True # row_dim.hidden = False # 保存修改后的文件 wb.save("your_output_file.xlsx")
说明
- 代码会遍历工作表中所有带大纲层级的列,将其分组设置为折叠状态(Excel中大纲指示器显示为加号),同时强制列保持可见,完全匹配你“不隐藏行列、仅折叠已有分组”的要求。
- 如需处理行分组,只需取消注释对应的行处理代码块即可。
内容的提问来源于stack exchange,提问作者YGA
相关产品推荐
相关产品推荐

