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

如何使用openpyxl为Excel工作表添加表格并设置样式

使用openpyxl为Excel数据创建带样式的表格

实现步骤

要完成创建表格和设置样式的需求,需要用到openpyxl.worksheet.table模块中的Table和TableStyleInfo类,以下是具体实现方法:

1. 创建表格对象

首先确定数据的单元格范围:写入DataFrame后,通过工作表的max_column和max_row属性自动获取数据边界,避免手动硬编码范围。然后实例化Table对象,指定数据范围和表格名称(名称需唯一),最后将表格添加到工作表中。

2. 设置表格样式

通过TableStyleInfo配置表格的视觉样式,可选择Excel内置的表格样式名称,同时控制行/列条纹、首末列高亮等显示选项。

修改后的完整代码

import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl.worksheet.table import Table, TableStyleInfo

df = pd.DataFrame({
    'name': ['Lorem', 'Ipsum', 'Dolor', 'Sit', 'Amet'],
    'value_1': [4, 7, 2, 4, 6],
    'value_2': [1.23, 4.56, 7.13, 0.12, 0.]
})

wb = Workbook()
ws = wb.active

# 写入DataFrame数据到工作表
for r in dataframe_to_rows(df, index=False, header=True):
    ws.append(r)

# 自动计算数据范围(从A1到最后一列最后一行)
max_col = ws.max_column
max_row = ws.max_row
table_ref = f"A1:{chr(64 + max_col)}{max_row}"

# 创建表格对象
table = Table(displayName="DataTable", ref=table_ref)

# 配置表格样式
style = TableStyleInfo(
    name="TableStyleMedium9",  # 内置样式,可替换为TableStyleLight/Medium/Dark系列
    showFirstColumn=False,
    showLastColumn=False,
    showRowStripes=True,  # 开启行条纹高亮
    showColumnStripes=False
)
table.tableStyleInfo = style

# 将表格添加到工作表
ws.add_table(table)

wb.save('pandas_table_example.xlsx')

补充说明

  • 内置样式参考:Excel提供了多组内置表格样式,命名规则为TableStyleLightX(浅色)、TableStyleMediumX(中等色)、TableStyleDarkX(深色),替换name参数即可切换不同配色和格式。
  • 自定义进阶样式:如果需要更精细的格式控制(比如单独修改表头字体粗细、单元格背景色),可以结合openpyxl.styles模块对单元格逐个设置,但需注意内置表格样式会优先覆盖单独设置的单元格格式,可先禁用内置样式再做自定义调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:50:34