透视表是 Excel 中强大的数据分析工具,它提供了一种灵活的方式来组织、操作和汇总数据,使用户能在不同角度上查看和比较数据,深入研究数据之间的关系和模式。通过透视表,您可以根据不同的标准(如类别、日期或数值)轻松重新排列和汇总数据。当处理复杂数据集时,您可以将不同的数据集放置在透视表中进行比较以便快速地分析并找出差异和优劣势。因此,透视表这个功能在各领域和行业都有广泛的应用。本文将介绍如何使用 Spire.XLS for Python 在 Excel 文档中创建或操作透视表。
安装 Spire.XLS for Python
本教程需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.XLS
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.XLS for Python
Python 在 Excel 中创建透视表
要在 Excel 中创建透视表,请按照以下步骤操作:
- 创建一个 Workbook 对象。
- 使用 Workbook.LoadFromFile() 方法加载一个现有的 Excel 文档。
- 通过 Workbook.Worksheets[index] 属性获取指定的工作表。
- 使用 Worksheet.Range 属性指定透视表的单元格数据范围。
- 使用 Workbook.PivotCaches.Add() 方法创建 PivotCache 对象。
- 使用 Worksheet.PivotTables.Add() 方法根据 PivotCache 创建透视表。
- 添加行字段。
- 添加值字段。
- 使用 PivotTable.PivotBuiltInStyles 设置内置样式到透视表。
- 使用 Workbook.SaveToFile() 方法保存结果文档。
- 使用 Workbook.Dispose() 方法释放文档对象。
- Python
from spire.xls import *
from spire.xls.common import *
# 创建一个Workbook对象
workbook = Workbook()
# 加载原Excel文档
workbook.LoadFromFile("Data.xlsx")
# 获取第一个工作表
sheet = workbook.Worksheets[0]
# 指定透视表的数据范围
cellRange = sheet.Range["A1:C15"]
# 添加CellRange到PivotCaches
piVotCache = workbook.PivotCaches.Add(cellRange)
# 通过PivotCaches添加透视表并设置位置
pivotTable = sheet.PivotTables.Add("Pivot Table", sheet.Range["E1"], piVotCache)
# 设置透视表的行字段
regionField = pivotTable.PivotFields["Continent"]
regionField.Axis = AxisTypes.Row
pivotTable.Options.RowHeaderCaption = "Continent"
productField = pivotTable.PivotFields["Country"]
productField.Axis = AxisTypes.Row
# 添加值字段
pivotTable.DataFields.Add(pivotTable.PivotFields["Population"], "SUM of Population", SubtotalTypes.Sum)
# 设置透视表的样式
pivotTable.BuiltInStyle = PivotBuiltInStyles.PivotStyleMedium11
# 设置透视表相应列的列宽
h = sheet.Range["E1"]
sheet.SetColumnWidth(h.Column, 18)
sheet.SetColumnWidth(h.Column+1, 20)
# 保存文件
workbook.SaveToFile("结果.xlsx", ExcelVersion.Version2016)
# 释放对象
workbook.Dispose()
Python 按列值对透视表进行排序
在 Python 中,可以通过列值对透视表进行排序。 首先,通过 PivotTable.PivotFields["FieldName"] 属性访问特定字段,然后使用 PivotField.SortType 属性设置其排序类型。以下是按照特定字段的值对透视表进行排序的步骤:
- 创建一个 Workbook 对象。
- 使用 Workbook.LoadFromFile() 方法加载含有透视表的原 Excel 文档。
- 通过 Workbook.Worksheets[index] 属性获取特定的工作表。
- 通过 Worksheet.PivotTables[index] 属性从工作表中获取特定的透视表。
- 通过 PivotTable.PivotFields["FieldName"] 属性获取特定的字段。
- 通过 PivotField.SortType 属性对该字段中的数据进行排序。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
- 使用 Workbook.Dispose() 方法释放文档对象
- Python
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["Continent"]
# 按升序排列
idField.SortType = PivotFieldSortType.Ascending
# 保存文件
workbook.SaveToFile("结果.xlsx", ExcelVersion.Version2016)
# 释放对象
workbook.Dispose()
Python 展开或折叠透视表中的行
在 Python 中展开或折叠数据透视表中的行,使用 PivotField.HideItemDetail(string itemValue, bool isHiddenDetail) 方法,将第二个参数设置为 true,为折叠效果;设置为 false,为展开效果。详细步骤如下:
- 创建一个 Workbook 对象。
- 使用 Workbook.LoadFromFile() 方法加载含有透视表的原 Excel 文档。
- 通过 Workbook.Worksheets[index] 属性获取特定的工作表。
- 通过 Worksheet.PivotTables[index] 属性从工作表中获取特定的透视表。
- 通过 PivotTable.PivotFields["FieldName"] 属性获取特定的字段。
- 通过 PivotField.HideItemDetail(string itemValue, bool isHiddenDetail) 方法针对具体项折叠或展开。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
- 使用 Workbook.Dispose() 方法释放文档对象
- Python
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["Continent"]
# 设置展开或折叠
idField.HideItemDetail("South America", True)
idField.HideItemDetail("North America", False)
# 保存文件
workbook.SaveToFile("结果.xlsx", ExcelVersion.Version2016)
# 释放对象
workbook.Dispose()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。