You need to enable JavaScript to run this app. Python中使用PrettyTable库如何实现表格跨列合并单元格?
优惠活动
大模型
产品
解决方案
定价
更多

Python中使用PrettyTable库如何实现表格跨列合并单元格?

解决方案

方案1:使用PrettyTable内置跨列标题方法(推荐)

PrettyTable 2.5.0及以上版本提供了add_section_title()方法,专门用于插入跨所有列的标题行,无需手动匹配列数,代码示例如下:

from prettytable import PrettyTable
x = PrettyTable()
x.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
x.add_row(["Adelaide", 1295, 1158259, 600.5])
# 插入跨全4列的标题行
x.add_section_title("City No. 1")
# 可继续添加后续普通行
x.add_row(["Brisbane", 5905, 1857594, 1146.4])
print(x)

运行后会自动生成居中显示的跨列行,上下默认带分隔线,符合类似Excel合并单元格的效果。

方案2:旧版本兼容方案

如果你使用的是不支持add_section_title()的低版本PrettyTable,可以手动构造和列数长度一致的行,将内容放在首个单元格,其余单元格填空字符串,再设置全局居中对齐即可,示例代码:

from prettytable import PrettyTable
x = PrettyTable()
x.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
# 全局设置所有列居中对齐
x.align = "c"
x.add_row(["Adelaide", 1295, 1158259, 600.5])
# 手动补全空值匹配列数
x.add_row(["City No. 1", "", "", ""])
# 可选:在跨列行前后添加分隔线区分层级
x.add_divider()
x.add_row(["Brisbane", 5905, 1857594, 1146.4])
print(x)

方案3:使用rich库实现更复杂的表格需求

如果后续有更多单元格合并、样式自定义的需求,可以改用rich库的Table组件,对合并单元格、跨列/跨行的支持更灵活,示例代码:

from rich.console import Console
from rich.table import Table

table = Table()
# 定义表头
table.add_column("City name")
table.add_column("Area")
table.add_column("Population")
table.add_column("Annual Rainfall")
# 添加普通行
table.add_row("Adelaide", "1295", "1158259", "600.5")
# 添加跨全列的分区标题
table.add_section("City No. 1")
# 添加后续普通行
table.add_row("Brisbane", "5905", "1857594", "1146.4")
# 打印表格
console = Console()
console.print(table)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 22:57:04