浅析Python如何在Excel中应用数据透视表

 更新时间:2025年07月09日 10:32:47   作者:E-iceblue  
数据透视表是 Excel 最强大的数据分析工具之一,能快速实现海量数据的动态汇总、多维分析与交互式展示, 下面我们就来看看如何使用 Python 在 Excel 中应用数据透视表

数据透视表是 Excel 最强大的数据分析工具之一,能快速实现海量数据的动态汇总、多维分析与交互式展示。用户能在不同角度上查看和比较数据,深入研究数据之间的关系和模式。 但是 Excel 同其他 Office 软件一样,想要高效办公就得付出大量时间和精力去学习高阶使用,而人工处理也在面对大量数据时显得力不从心。

幸运的是,利用好 Python 等编程语言,我们就可以使用几行浅显易懂的代码实现全自动处理数据,并生成所需 Excel 文件。而 Python 的 Spire.XLS 库就是这样一个绝佳的工具。 本文将介绍如何使用 Python 在 Excel 中应用数据透视表。

前期准备

为了实现纯代码操控 Excel 文档,本文中需要用到 Spire.XLS for Python 库,我们可以用以下两种方法安装。

  • 手动下载产品包后再从本地路径安装。
  • 通过命令行直接使用以下 pip 命令安装:
pip install Spire.XLS

Python 在 Excel 中创建透视表

从最简单的部分开始——要在 Excel 中创建透视表,请按照以下步骤操作:

  • 使用 Workbook.LoadFromFile() 方法加载一个现有的 Excel 文档
  • 通过 Workbook.Worksheets[index] 属性获取指定的工作表
  • 使用 Worksheet.Range 属性指定透视表的单元格数据范围
  • 使用 Workbook.PivotCaches.Add() 方法创建 PivotCache 对象
  • 使用 Worksheet.PivotTables.Add() 方法根据 PivotCache 创建透视表
  • 添加行字段
  • 添加值字段
  • 使用 PivotTable.PivotBuiltInStyles 设置内置样式到透视表
  • 使用 Workbook.SaveToFile() 方法保存结果文档
  • 使用 Workbook.Dispose() 方法释放文档对象[i]
from spire.xls import *
from spire.xls.common import *

# 创建一个 Workbook 对象
workbook = Workbook()

# 加载原 Excel 文档
workbook.LoadFromFile("Microsoft Excel 工作表.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 指定透视表的数据范围
cellRange = sheet.Range["A2:D28"]

# 添加 CellRange 到 PivotCaches
piVotCache = workbook.PivotCaches.Add(cellRange)

# 通过PivotCaches添加透视表并设置位置
pivotTable = sheet.PivotTables.Add("Pivot Table", sheet.Range["H4"],
                                   piVotCache)

# 设置透视表的行字段
regionField = pivotTable.PivotFields["书店名称"]
regionField.Axis = AxisTypes.Row
pivotTable.Options.RowHeaderCaption = "书店名称"
productField = pivotTable.PivotFields["书籍名称"]
productField.Axis = AxisTypes.Row

# 添加值字段
pivotTable.DataFields.Add(pivotTable.PivotFields["销售数量(本)"], "总计销售数量(本)",
                          SubtotalTypes.Sum)

# 设置透视表的样式
pivotTable.BuiltInStyle = PivotBuiltInStyles.PivotStyleMedium11

# 设置透视表相应列的列宽
h = sheet.Range["H4"]
sheet.SetColumnWidth(h.Column, 18)
sheet.SetColumnWidth(h.Column + 1, 20)

# 保存文件
workbook.SaveToFile("结果.xlsx", ExcelVersion.Version2016)

# 释放对象
workbook.Dispose()

结果预览:

(Python 在 Excel 中创建数据透视表)

Python 按列值对透视表进行排序

使用 Spire.XLS,让我们在 Python 中得以通过列值对透视表进行排序。首先,通过 PivotTable.PivotFields["FieldName"] 属性访问特定字段,然后使用 PivotField.SortType 属性设置其排序类型。

以下是按照特定字段的值对透视表进行排序的步骤:

  • 使用 Workbook.LoadFromFile() 方法加载含有透视表的原 Excel 文档
  • 通过 Workbook.Worksheets[index] 属性获取特定的工作表
  • 通过 Worksheet.PivotTables[index] 属性从工作表中获取特定的透视表
  • 通过 PivotTable.PivotFields["FieldName"] 属性获取特定的字段
  • 通过 PivotField.SortType 属性对该字段中的数据进行排序
  • 使用 Workbook.SaveToFile() 方法保存结果文件
  • 使用 Workbook.Dispose() 方法释放文档对象
from spire.xls import *
from spire.xls.common import *

# 创建一个 Workbook 对象
workbook = Workbook()

# 加载含有透视表的原 Excel 文档
workbook.LoadFromFile("透视表.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 获取第一个透视表
pivotTable = sheet.PivotTables[0]

# 获取要排序的字段
idField = pivotTable.PivotFields["书店名称"]

# 按升序排列
idField.SortType = PivotFieldSortType.Ascending

# 保存文件
workbook.SaveToFile("结果.xlsx", ExcelVersion.Version2016)

# 释放对象
workbook.Dispose()

结果预览:

(Python 按列值对数据透视表排序)

Python 展开或折叠透视表中的行

若是想在 Python 中展开或折叠数据透视表中的行,可以使用 PivotField.HideItemDetail(string itemValue, bool isHiddenDetail) 方法来实现。

将第二个参数设置为 true 为折叠效果;反之,设置为 false 为展开效果。

详细步骤如下:

  • 使用 Workbook.LoadFromFile() 方法加载含有透视表的原 Excel 文档
  • 通过 Workbook.Worksheets[index] 属性获取特定的工作表
  • 通过 Worksheet.PivotTables[index] 属性从工作表中获取特定的透视表
  • 通过 PivotTable.PivotFields["FieldName"] 属性获取特定的字段
  • 通过 PivotField.HideItemDetail(string itemValue, bool isHiddenDetail) 方法针对具体项折叠或展开
  • 使用 Workbook.SaveToFile() 方法保存结果文件
  • 使用 Workbook.Dispose() 方法释放文档对象
from spire.xls import *
from spire.xls.common import *

# 创建一个 Workbook 对象
workbook = Workbook()

# 加载含有透视表的原 Excel 文档
workbook.LoadFromFile("透视表.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 获取第一个透视表
pivotTable = sheet.PivotTables[0]

# 获取特定字段
idField = pivotTable.PivotFields["书店名称"]

# 设置展开或折叠
idField.HideItemDetail("文化书店", True)
idField.HideItemDetail("西门书店", False)
idField.HideItemDetail("中原书店", False)

# 保存文件
workbook.SaveToFile("结果.xlsx", ExcelVersion.Version2016)

# 释放对象
workbook.Dispose()

结果预览:

(Python 展开或折叠数据透视表)

小结

在本教程中,我们了解了 Python 创建透视表、Python 按列值对透视表进行排序和 Python 展开或折叠透视表中的行的方法。

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

相关文章

  • 使用python对多个txt文件中的数据进行筛选的方法

    使用python对多个txt文件中的数据进行筛选的方法

    今天小编就为大家分享一篇使用python对多个txt文件中的数据进行筛选的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python图像处理之图像金字塔的向上和向下取样

    Python图像处理之图像金字塔的向上和向下取样

    图像金字塔是指由一组图像且不同分别率的子图集合,它是图像多尺度表达的一种,以多分辨率来解释图像的结构,主要用于图像的分割或压缩。本文主要介绍了图像金字塔的图像向下取样和向上取样,感兴趣的可以了解一下
    2022-09-09
  • Python返回数组/List长度的实例

    Python返回数组/List长度的实例

    今天小编就为大家分享一篇Python返回数组/List长度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • python如何输出反斜杠

    python如何输出反斜杠

    在本篇内容中小编给大家整理了一篇关于python怎么输出反斜杠的相关基础文章,有兴趣的朋友们可以学习参考下。
    2020-06-06
  • python数字图像处理图像的绘制详解

    python数字图像处理图像的绘制详解

    这篇文章主要为大家介绍了python数字图像处理图像的绘制示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Python全栈之学习MySQL(1)

    Python全栈之学习MySQL(1)

    这篇文章主要为大家介绍了Python全栈之MySQL,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • python先序遍历二叉树问题

    python先序遍历二叉树问题

    这篇文章主要介绍了python先序遍历二叉树问题,简单分析了问题,然后向大家分享了代码示例,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 深入理解Python中的函数参数传递机制

    深入理解Python中的函数参数传递机制

    在Python中,对于函数的参数传递,有两种主要的方式:传值和传引用。事实上,Python的参数传递是一种“传对象引用”的方式,本文呢我们将详细介绍Python的函数参数传递机制,这对理解Python编程语言的底层实现以及优化你的代码都非常有帮助
    2023-07-07
  • Python图像处理之图像的缩放、旋转与翻转实现方法示例

    Python图像处理之图像的缩放、旋转与翻转实现方法示例

    这篇文章主要介绍了Python图像处理之图像的缩放、旋转与翻转实现方法,结合实例形式分析了Python使用resize()、rotate()及transpose()等函数进行图像的缩放、旋转及翻转相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • Python爬取网页信息的示例

    Python爬取网页信息的示例

    这篇文章主要介绍了Python爬取网页信息的示例,帮助大家更好的理解和学习python 爬虫,感兴趣的朋友可以了解下
    2020-09-09

最新评论