如何使用rich.table实现C/D为A、E/F为B的多级表头表格?
实现Rich库的多级表头
要实现C、D作为A的二级表头,E、F作为B的二级表头,你需要利用Rich表格的colspan属性合并顶层列,再添加二级表头行,而非在数据行里嵌套子表格。以下是修正后的代码:
from rich.console import Console from rich.table import Table # 创建主表格 table = Table(title="Nested") # 顶层表头:A跨2列,B跨2列,用样式区分层级 table.add_column("A", colspan=2, style="bold magenta") table.add_column("B", colspan=2, style="bold magenta") # 添加二级表头行,设置样式区分 table.add_row( "[bold cyan]C", "[bold cyan]D", "[bold cyan]E", "[bold cyan]F" ) # 添加数据行示例 table.add_row("C1", "D1", "E1", "F1") table.add_row("C2", "D2", "E2", "F2") console = Console() console.print(table)
代码说明:
colspan=2让顶层表头"A"和"B"分别跨2列,对应下方的两个二级表头,形成层级关联。- 通过不同的文本样式(如
bold magenta、bold cyan),可以更清晰地区分表头层级。 - 二级表头直接作为一行添加到表格中,和后续数据行结构对应,完美匹配你需要的多级表头效果。
你之前的代码错误在于将子表格作为数据单元格内容插入,导致显示为单元格内嵌套表格,而非预期的层级表头结构。
内容的提问来源于stack exchange,提问作者Suzuna Minami
相关产品推荐
相关产品推荐

