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

如何使用Python实现Excel数据透视表的自动化生成?

Python自动化创建Excel数据透视表的两种实用方法

方法一:用Pandas快速生成透视表(适合批量处理后导出)

Pandas是Python数据处理的利器,能快速生成透视表并导出到Excel,适合不需要后续在Excel中编辑透视表的场景。

  1. 安装依赖
pip install pandas openpyxl
  1. 示例代码
import pandas as pd

# 读取Excel数据源文件
df = pd.read_excel('数据源.xlsx', sheet_name='Sheet1')

# 创建数据透视表
# 按需修改参数:index=行标签,columns=列标签,values=统计字段,aggfunc=聚合函数
pivot_df = pd.pivot_table(
    df,
    index=['部门'],  # 行标签,对应Excel透视表的行区域
    columns=['季度'],  # 列标签,对应Excel透视表的列区域
    values=['销售额'],  # 需要统计的字段
    aggfunc='sum',  # 聚合方式:sum/mean/count等
    fill_value=0,  # 空值填充为0
    margins=True,  # 显示总计行/列
    margins_name='总计'  # 总计的名称
)

# 将透视表导出到新的Excel文件
with pd.ExcelWriter('透视表结果.xlsx', engine='openpyxl') as writer:
    pivot_df.to_excel(writer, sheet_name='透视表')
  1. 参数说明
  • index:设置透视表的行分组字段,可传入多个字段(如['部门', '员工'])
  • columns:设置透视表的列分组字段
  • values:需要计算的数值字段,支持多个字段
  • aggfunc:聚合函数,可传入字典为不同字段设置不同聚合方式(如{'销售额':'sum', '订单数':'count'})

方法二:用OpenPyXL创建Excel原生透视表(保留交互性)

如果需要生成和手动创建一致的、可在Excel中编辑的原生透视表,用OpenPyXL直接操作Excel对象是更好的选择。

  1. 安装依赖
pip install openpyxl
  1. 示例代码
from openpyxl import load_workbook
from openpyxl.pivot import PivotTable, PivotCache

# 加载现有Excel工作簿
wb = load_workbook('数据源.xlsx')
ws_data = wb['Sheet1']  # 数据源工作表
ws_pivot = wb.create_sheet('透视表')  # 创建存放透视表的新工作表

# 创建透视表缓存(关联数据源)
pivot_cache = PivotCache(wb, ref=ws_data.dimensions)
wb._pivots.append(pivot_cache)

# 创建透视表,指定位置(这里从A1单元格开始)
pivot_table = PivotTable(
    pivot_cache,
    ref="A1",
    name="销售透视表",
    rows=[ws_data['A1'].value],  # 行字段:对应数据源的A列表头(如"部门")
    cols=[ws_data['B1'].value],  # 列字段:对应数据源的B列表头(如"季度")
    data=[ws_data['C1'].value],  # 值字段:对应数据源的C列表头(如"销售额")
    dataFields=[{'name': ws_data['C1'].value, 'func': 'sum'}]  # 设置聚合方式为求和
)

# 将透视表添加到工作表
ws_pivot.add_pivot(pivot_table)

# 保存工作簿
wb.save('原生透视表结果.xlsx')
  1. 注意事项
  • 数据源工作表不能有合并单元格,表头必须是单行且清晰
  • rows、cols、data参数传入的是数据源表头的文本内容,确保和实际表头一致
  • 如果需要多个行/列字段,可传入列表(如rows=['部门', '员工'])

自动化定期执行

如果需要定期生成透视表,可以把代码保存为.py脚本,通过以下方式定时运行:

  • Windows:使用「任务计划程序」创建定时任务,执行python 你的脚本路径.py
  • Linux/macOS:使用cron定时任务,添加执行命令

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 06:55:13