开源 Python 表格展示与排版库 Great Tables

Great Tables 是由 Posit 团队维护的开源 Python 表格展示与排版库,项目地址:posit-dev/great-tables。它的核心定位是将 Pandas、Polars 等数据框中的结构化数据,转换为适合报告、数据分析文档和网页展示的高质量格式化表格,而不是提供数据处理或交互式数据探索能力。

Great Tables 的核心输出是 HTML 表格,主要通过 HTML + CSS 实现排版和样式,而不是提供一套独立的前端 UI 组件。

  • 渲染层:生成 HTML 表格结构,并使用 CSS 控制字体、颜色、边框、间距、条件格式等视觉效果。
  • 交互层:它不是 DataTables、AG Grid 这类面向 Web 应用的交互式表格组件,核心目标是静态数据展示和报告排版,而不是提供排序、筛选、编辑等完整交互能力。

另外,它也支持将 CSS 内联到 HTML 元素中,方便嵌入邮件模板等对样式支持有限的环境;还可以导出 PNG、JPEG、WebP 和 PDF。需要注意,图片和 PDF 导出涉及浏览器渲染,并非仅靠 HTML 字符串直接完成。

核心功能包括:

  1. 表格结构编排:支持标题、副标题、表头、表尾、行标签、分组表头、脚注和数据来源说明,可以组合出类似专业报告、学术论文的复杂表格。
  2. 数据格式化:提供货币、百分比、日期、数字、时长等格式化方法,支持紧凑数字表示、缺失值替换及自定义文本转换。
  3. 样式定制:可以设置单元格颜色、字体、对齐方式、边框、行间距和条件格式,还能通过数据颜色映射及迷你图增强数据表达效果。
  4. 多种输出格式:默认生成 HTML 表格,也支持导出图片、PDF 和 LaTeX 等格式,适用于 Jupyter Notebook、Quarto 文档及报告生成流程。
  5. 链式 API:以 GT() 为入口,通过连续调用 tab_header()、fmt_currency()、cols_hide() 等方法逐步构建表格,代码可读性较好。

典型使用场景包括经营分析报告、财务报表、统计数据发布、研究论文、数据分析 Notebook,以及自动化生成的 HTML 报告。

安装方式:

pip install great_tables

简单示例:

from great_tables import GT

table = (
    GT(df)
    .tab_header(title="销售业绩报告")
    .fmt_currency(columns=["revenue"])
    .fmt_number(columns=["orders"], compact=True)
)

其中 df 是已有的 Pandas 或 Polars 数据框。

Great Tables 可以理解为 Python 生态中的专业表格排版引擎,优势在于声明式 API、丰富的格式化能力和高质量输出。如果需要将统计结果直接呈现为可发布的报告表格,它比手动拼接 HTML 更合适;如果需要前端实时交互、排序筛选或复杂的数据管理界面,则应考虑专门的 Web 表格组件。该项目采用 MIT 开源许可证,适合商业项目集成。


项目提供了一个 Skill 供安装:https://posit-dev.github.io/great-tables/skills.html

name: great-tables
description: >
    Easily generate information-rich, publication-quality tables from Python. Use when writing Python code that uses the great_tables package.
license: MIT
compatibility: Requires Python >=3.10.
如果你有魔法,你可以看到一个评论框~