You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用openpyxl时外层分组覆盖/移除内层分组问题求助

Excel多级行分组设置问题解决

问题描述

需要在Excel工作表中创建多个Outline Level 1的行分组,并在这些分组外层设置一个Outline Level 2的嵌套分组,但运行现有代码后,外层分组会覆盖或移除内层的Level 1分组,无法实现预期的嵌套结构。

问题原因

openpyxl的row_dimensions.group()方法默认会清除指定行范围内已存在的分组配置。原有代码先创建内层Level 1分组,再创建外层Level 2分组时,外层分组的范围(7-17行)包含了所有内层分组的行,导致内层分组被清除,最终仅外层Level 2分组生效。

修正后的代码

import openpyxl

wb = openpyxl.load_workbook("Planung.xlsx")
ws = wb["Zeitplan"]
ws.sheet_properties.outlinePr.summaryBelow = False

# 先设置外层Level 2分组
ws.row_dimensions.group(7, 17, outline_level=2)
# 再设置内层Level 1分组,覆盖对应行的层级配置
ws.row_dimensions.group(9, 11, outline_level=1)
ws.row_dimensions.group(13, 13, outline_level=1)
ws.row_dimensions.group(16, 17, outline_level=1)

wb.save('test.xlsx')

验证步骤

  1. 创建名为Planung.xlsx的Excel文件,新建名为Zeitplan的工作表
  2. 运行上述修正后的代码
  3. 打开生成的test.xlsx,即可看到预期嵌套分组效果:7-17行为Level 2分组,内部包含三个独立的Level 1子分组

内容的提问来源于stack exchange,提问作者codeofandrin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 01:40:59