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

如何通过Python/openpyxl实现Excel可折叠行/列功能?

使用openpyxl实现Excel的可折叠行/列功能

openpyxl完全支持Excel的**分组(Outline)**功能,就是你要的点击(+)、(-)展开/折叠行/列的效果,直接通过代码就能实现,下面是具体操作方法:

一、创建可折叠列

假设你要把指定范围的列(比如C到E列)设置为可折叠,默认打开时处于折叠状态,代码示例如下:

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

# 参数说明:起始列、结束列、分组层级、是否默认隐藏(折叠)
ws.column_dimensions.group('C', 'E', outline_level=1, hidden=True)

# 保存文件
wb.save("可折叠列示例.xlsx")

如果希望默认展开,把hidden参数改成False即可。

二、创建可折叠行

操作逻辑和列完全一致,比如要把第3到第5行设置为可折叠:

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

# 参数说明:起始行、结束行、分组层级、是否默认隐藏(折叠)
ws.row_dimensions.group(3, 5, outline_level=1, hidden=True)

wb.save("可折叠行示例.xlsx")

三、嵌套多层分组(可选)

如果需要更复杂的嵌套折叠结构(比如大分组里包含小分组),可以通过设置不同的outline_level实现,数值越大层级越深:

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

# 外层分组:C-E列,默认展开
ws.column_dimensions.group('C', 'E', outline_level=1, hidden=False)
# 内层分组:D列,默认折叠
ws.column_dimensions.group('D', 'D', outline_level=2, hidden=True)

wb.save("多层折叠示例.xlsx")

额外说明

  • 分组的行/列必须是连续范围,不支持非连续的行/列分组
  • 如果要取消已设置的分组,可使用ungroup方法,比如ws.column_dimensions.ungroup('C', 'E')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 02:42:26