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

使用openpyxl生成带总计行的Excel表格失败问题求助

搞定openpyxl表格总计行不显示的问题

嘿,我看你用openpyxl做带总计行的表格时遇到了问题,其实是几个关键步骤没做到位,咱们来一步步修正:

首先,原代码里只加了数据和列标题,但总计行需要你手动添加内容,而且要告诉openpyxl把最后一行设为总计行,还要让表格范围包含这一行。

给你看修正后的完整代码:

from openpyxl import Workbook
from openpyxl.worksheet.table import Table, TableStyleInfo

wb = Workbook()
ws = wb.active

# 先添加列标题
headers = ["Fruit", "Q1", "Q2", "Q3", "Q4"]
ws.append(headers)

# 写入数据行
data = [
    ['Apples', 10000, 5000, 8000, 6000],
    ['Pears', 2000, 3000, 4000, 5000],
    ['Bananas', 6000, 6000, 6500, 6000],
    ['Oranges', 500, 300, 200, 700],
]
for row in data:
    ws.append(row)

# 重点:手动添加总计行,写入标签和求和公式
ws.append(["总计", "=SUM(B2:B5)", "=SUM(C2:C5)", "=SUM(D2:D5)", "=SUM(E2:E5)"])

# 定义表格范围:必须包含标题、数据、总计行,这里是A1到E6
table_range = "A1:E6"

# 创建表格时一定要加totalRow=True,告诉Excel这是总计行
table = Table(displayName="FruitSalesTable", ref=table_range, totalRow=True)

# 设置表格样式(和官方示例一致,可选)
style = TableStyleInfo(name="TableStyleMedium9", showFirstColumn=False,
                       showLastColumn=False, showRowStripes=True, showColumnStripes=True)
table.tableStyleInfo = style

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

# 保存文件
wb.save("fruit_sales.xlsx")

关键步骤说明:

  • 手动添加总计行内容:openpyxl不会自动生成总计行的数据,得咱们自己写好“总计”标签和求和公式,公式里的范围要对应你的实际数据行(比如B2:B5对应4行数据,可根据数据量调整)。
  • 表格范围必须包含总计行:如果你的表格范围只到数据行,总计行根本不会被纳入表格,自然无法显示。
  • 开启totalRow参数:创建Table对象时加上totalRow=True,这是让Excel识别最后一行为总计行的核心开关。

这样保存后打开Excel,就能看到带自动计算总计的表格啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:24:59