使用Python在Excel工作表中创建数据透视表的方法

 更新时间:2025年01月12日 10:10:12   作者:Eiceblue  
在数据处理和分析工作中,Excel作为一个广泛使用的工具,提供了强大的功能来管理和解析数据,当面对大量复杂的数据集时,为了更高效地总结、分析和展示数据,创建数据透视表成为一种不可或缺的方法,本文将介绍如何使用Python在Excel工作表中创建数据透视表

引言

在数据处理和分析工作中,Excel作为一个广泛使用的工具,提供了强大的功能来管理和解析数据。当面对大量复杂的数据集时,为了更高效地总结、分析和展示数据,创建数据透视表成为一种不可或缺的方法。通过使用Python这样的编程语言与Excel工作表结合,我们能够自动化数据透视表的生成过程,不仅节省了时间,还能确保每次操作的一致性和准确性。本文将介绍如何使用Python在Excel工作表中创建数据透视表。

本文所使用的方法需要用到的Spire.XLS for Python,PyPI:pip install spire.xls

用Python在Excel工作表中创建数据透视表

在Excel工作表汇总创建数据透视表时,我们需要先用指定的单元格范围通过Workbook.PivotCaches.Add(CellRange)方法创建一个XlsPivotCache对象,然后再使用Worksheet.PivotTables.Add(name: string, location: CellRange, XlsPivotCache)基于XlsPivotCache对象创建数据透视表。创建好之后,还需要对数据透视表的行字段、列字段、值字段等进行设置,最后制作成一个完善的数据透视表。以下是操作步骤示例:

  1. 导入所需的类WorkbookAxisTypesPivotBuiltInStylesSubtotalTypes, 和 PivotAutoFomatTypes
  2. 创建Workbook类的实例。
  3. 使用Workbook.LoadFromFile方法载入指定路径的现有Excel文件到工作簿实例中。
  4. 使用Workbook.Worksheets.get_Item方法获取工作簿中的一个工作表。
  5. 定义数据源范围:通过Worksheet.Range.get_Item方法选取单元格区域。
  6. 使用Workbook.PivotCaches.Add方法添加数据源范围到工作簿的缓存中创建一个XlsPivotCache对象。
  7. 在当前工作表中定义位置并使用Worksheet.PivotTables.Add方法以及之前创建的XlsPivotCache对象创建一个数据透视表。数据透视表可创建在其他工作表中。
  8. 为数据透视表添加行字段,通过XlsPivotTable.PivotFields.get_Item方法选择对应的列,并设置其轴类型为行。
  9. 添加列字段,同样通过XlsPivotTable.PivotFields.get_Item方法选择列,并设置其轴类型为列。
  10. 添加值字段,选择需要求和的数据列,并通过XlsPivotTable.DataFields.Add方法添加到数据透视表中。
  11. 使用XlsPivotCache.CalculateData()方法更新数据透视表值。
  12. 使用XlsPivotTable.BuiltInStyle属性应用内置样式。
  13. 使用XlsPivotTable.AutoFormatType属性设置数据透视表的自动格式类型。
  14. 使用Workbook.SaveToFile方法保存修改后的工作簿到指定路径。
  15. 释放资源。

代码示例

from spire.xls import Workbook, AxisTypes, PivotBuiltInStyles, SubtotalTypes, PivotAutoFomatTypes

# 创建Workbook实例
workbook = Workbook()

# 载入Excel文件
workbook.LoadFromFile("Sample.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets.get_Item(0)

# 获取数据源单元格范围
dataRange = sheet.Range.get_Item("A1:E143")

# 用数据源创建XlsPivotCache对象
pivotCache = workbook.PivotCaches.Add(dataRange)

# 使用XlsPivotCache对象在当前工作表中创建数据透视表
pivotTable = sheet.PivotTables.Add("销售分析", sheet.Range.get_Item("G2"), pivotCache)

# 使用XlsPivotCache对象在新的工作表中创建数据透视表
#sheet2 = workbook.Worksheets.Add("销售分析")
#pivotTable2 = sheet.PivotTables.Add("销售分析", sheet.Range.get_Item("A1"), pivotCache)

# 添加行字段
rowField1 = pivotTable.PivotFields.get_Item(sheet.Range.get_Item("C1").Value)
rowField1.Axis = AxisTypes.Row
rowField2 = pivotTable.PivotFields.get_Item(sheet.Range.get_Item("D1").Value)
rowField2.Axis = AxisTypes.Row

# 添加列字段
columnField1 = pivotTable.PivotFields.get_Item(sheet.Range.get_Item("B1").Value)
columnField1.Axis = AxisTypes.Column

# 添加值字段
dataField1 = pivotTable.PivotFields.get_Item(sheet.Range.get_Item("E1").Value)
pivotTable.DataFields.Add(dataField1, "求和项:" + sheet.Range.get_Item("E1").Value, SubtotalTypes.Sum)

# 计算值
pivotTable.CalculateData()

# 设置数据透视表样式
pivotTable.BuiltInStyle = PivotBuiltInStyles.PivotStyleLight2

# 设置数据透视表自动格式
pivotTable.AutoFormatType = PivotAutoFomatTypes.Table2

# 保存工作簿
workbook.SaveToFile("output/Excel数据透视表.xlsx")
workbook.Dispose()

结果

本文演示如何使用Python在Excel工作表中创建数据透视表,提供操作详解以及代码示例。

到此这篇关于使用Python在Excel工作表中创建数据透视表的方法的文章就介绍到这了,更多相关Python Excel数据透视表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python多进程及通信实现异步任务的方法

    python多进程及通信实现异步任务的方法

    这篇文章主要介绍了python多进程及通信实现异步任务需求,本人也是很少接触多进程的场景,对于python多进程的使用也是比较陌生的。在接触了一些多进程的业务场景下,对python多进程的使用进行了学习,觉得很有必要进行一个梳理总结,感兴趣的朋友一起看看吧
    2022-05-05
  • Python  PYQT界面点击按钮随机变色功能

    Python  PYQT界面点击按钮随机变色功能

    遇到这样的需求写一个pyqt界面,要求界面有一个按钮,每次点击这个按钮,就会生成一个10以内的随机数,当随机数出现的时候,界面底色要变成对应的颜色,同时要求随机数会在界面中展示出来,并且按钮和数字的颜色不会改变,下面给大家分享源代码,一起看看吧
    2024-08-08
  • Python中执行分位数回归的示例详解

    Python中执行分位数回归的示例详解

    分位数回归是线性回归的扩展版本,分位数回归构建一组变量(也称为自变量)和分位数(也称为因变量)之间的关系,下面我们就来看看Python如何执行分位数回归吧
    2024-03-03
  • PYTHON发送邮件YAGMAIL的简单实现解析

    PYTHON发送邮件YAGMAIL的简单实现解析

    这篇文章主要介绍了PYTHON发送邮件YAGMAIL的简单实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Python连接数据库进行数据查询的操作代码

    Python连接数据库进行数据查询的操作代码

    这篇文章主要介绍了Python连接数据库进行数据查询的操作代码,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • 详解Python3除法之真除法、截断除法和下取整对比

    详解Python3除法之真除法、截断除法和下取整对比

    这篇文章主要介绍了详解Python3除法之真除法、截断除法和下取整对比,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • python实现视频分帧效果

    python实现视频分帧效果

    这篇文章主要为大家详细介绍了python实现视频分帧效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • python验证身份证信息实例代码

    python验证身份证信息实例代码

    这篇文章主要介绍了python验证身份证信息的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Django中ORM外键和表的关系详解

    Django中ORM外键和表的关系详解

    这篇文章主要介绍了Django中ORM外键和表的关系详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • selenium3+python3环境搭建教程图解

    selenium3+python3环境搭建教程图解

    这篇文章主要介绍了selenium3+python3环境搭建教程图解,需要的朋友可以参考下
    2018-12-12

最新评论