Excel 电子表格中的数据透视表用于以交互方式汇总数据。假设您有许多发票的数据,并且您希望按客户或产品对它们进行分组。在这种情况下,数据透视表就会发挥作用。在本文中,您将学习如何在 Python 中处理 Excel 中的数据透视表。特别是,您将了解如何使用 Python 在 Excel 中创建数据透视表。此外,我们将演示如何以编程方式格式化 Excel 数据透视表中的单元格。
在 Excel 中创建数据透视表的 Python 库 - 免费下载
Aspose.Cells for Python 是一个高速库,旨在创建和处理 Excel 文件。我们将使用这个库在 Excel 电子表格中创建数据透视表。
您可以使用以下 pip 命令 下载 其包或从 PyPI 安装它。
pip install aspose-cells
用 Python 在 Excel 中创建数据透视表
以下是使用 Python 在 Excel 中创建数据透视表的步骤。
- 使用 Workbook 类创建新的或加载现有的 Excel 文件。
- 使用数据填充工作表(可选)。
- 使用 Worksheet.getPivotTables() 方法将数据透视表集合到 PivotTableCollection 对象中。
- 使用 PivotTableCollection.add(string, string, string) 方法添加一个新的数据透视表并在对象中获取它的引用。
- 设置总计、格式等选项。
- 使用 PivotTable.addFieldToArea(int, int) 方法将字段添加到区域。
- 使用 Workbook.save(string) 方法保存工作簿。
以下代码示例显示了如何在 Python 中的 Excel 中添加数据透视表。
import jpype
import asposecells
jpype.startJVM()
from asposecells.api import Workbook, PivotFieldType
# 实例化工作簿对象
workbook = Workbook()
# 添加新工作表并获取其参考
sheetIndex = workbook.getWorksheets().add()
worksheet = workbook.getWorksheets().get(sheetIndex)
# 获取工作表的单元格
cells = worksheet.getCells()
# 将值设置为单元格
cell = cells.get("A1")
cell.setValue("Sport")
cell = cells.get("B1")
cell.setValue("Quarter")
cell = cells.get("C1")
cell.setValue("Sales")
cell = cells.get("A2")
cell.setValue("Golf")
cell = cells.get("A3")
cell.setValue("Golf")
cell = cells.get("A4")
cell.setValue("Tennis")
cell = cells.get("A5")
cell.setValue("Tennis")
cell = cells.get("A6")
cell.setValue("Tennis")
cell = cells.get("A7")
cell.setValue("Tennis")
cell = cells.get("A8")
cell.setValue("Golf")
cell = cells.get("B2")
cell.setValue("Qtr3")
cell = cells.get("B3")
cell.setValue("Qtr4")
cell = cells.get("B4")
cell.setValue("Qtr3")
cell = cells.get("B5")
cell.setValue("Qtr4")
cell = cells.get("B6")
cell.setValue("Qtr3")
cell = cells.get("B7")
cell.setValue("Qtr4")
cell = cells.get("B8")
cell.setValue("Qtr3")
cell = cells.get("C2")
cell.setValue(1500)
cell = cells.get("C3")
cell.setValue(2000)
cell = cells.get("C4")
cell.setValue(600)
cell = cells.get("C5")
cell.setValue(1500)
cell = cells.get("C6")
cell.setValue(4070)
cell = cells.get("C7")
cell.setValue(5000)
cell = cells.get("C8")
cell.setValue(6430)
# 获取所有数据透视表
pivotTables = worksheet.getPivotTables()
# 将新数据透视表添加到工作表
index = pivotTables.add("=A1:C8", "E3", "PivotTable2")
# 访问新添加的数据透视表的实例
pivotTable = pivotTables.get(index)
# 隐藏行的总计
pivotTable.setRowGrand(False)
# 将第一个字段拖到行区域
pivotTable.addFieldToArea(PivotFieldType.ROW, 0)
# 将第二个字段拖到列区域
pivotTable.addFieldToArea(PivotFieldType.COLUMN, 1)
# 将第三个字段拖到数据区
pivotTable.addFieldToArea(PivotFieldType.DATA, 2)
# 保存 Excel 文件
workbook.save("CreatePivotTable.xlsx")
Excel 数据
数据透视表
在 Python 中格式化 Excel 数据透视表中的单元格
以下是在 Python 中格式化 Excel 数据透视表中的单元格的步骤。
- 使用 Workbook 类创建新的或加载现有的 Excel 文件。
- 填充工作表(可选)。
- 获取数据透视表所在工作表的参考。
- 使用 Worksheet.getPivotTables().get(index) 方法通过索引获取数据透视表的引用。
- 使用 Workbook.createStyle() 方法创建新样式并获取其参考。
- 设置 Style 对象的所需属性。
- 将 Style 对象分配给数据透视表。
- 使用 Workbook.save(string) 方法保存工作簿。
以下代码示例显示了如何在 Python 中格式化 Excel 数据透视表。
import jpype
import asposecells
jpype.startJVM()
from asposecells.api import Workbook, BackgroundType, Color
# 从包含数据透视表的源 Excel 文件创建工作簿对象
workbook = Workbook("pivotTable_test.xlsx")
# 按名称访问工作表
worksheet = workbook.getWorksheets().get("PivotTable")
# 按索引访问数据透视表
pivotTable = worksheet.getPivotTables().get(0)
# 创建背景颜色为浅蓝色的样式对象
style = workbook.createStyle()
style.setPattern(BackgroundType.SOLID)
style.setBackgroundColor(Color.getLightBlue())
# 用浅蓝色格式化整个数据透视表
pivotTable.formatAll(style)
# 用黄色创建另一个样式对象
style = workbook.createStyle()
style.setPattern(BackgroundType.SOLID)
style.setBackgroundColor(Color.getYellow())
# 用黄色格式化数据透视表第一行的单元格
columns = [0, 1, 2, 3, 4]
for x in columns:
pivotTable.format(1, x, style)
# 保存工作簿对象
workbook.save("output.xlsx")
用于创建 Excel 数据透视表的 Python 库 - 获得免费许可证
您可以获得免费的临时许可证 使用 Aspose.Cells for Python,而不受评估限制。
结论
在本文中,您学习了如何使用 Python 在 Excel 工作表中创建数据透视表。此外,您还了解了如何以编程方式在 Excel 中设置数据透视表中的单元格格式。此外,您可以使用 documentation 探索更多关于 Python Excel 库的信息。如果您有任何问题,请随时通过我们的 论坛 告诉我们。