要使用openpyxl创建Excel数据透视表,需要先创建一个Excel文件,然后在文件中创建一个数据表,并将数据表转换为数据透视表。下面是一个简单的示例代码:

from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl.pivot.table import PivotTable, PivotCache, DataField, DataField
from openpyxl.drawing.image import Image
import pandas as pd

# 创建一个Excel文件
wb = Workbook()
# 选择默认的活动工作表
ws = wb.active

# 创建一个数据表
data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
    'Age': [25, 34, 19, 42, 28],
    'Gender': ['Female', 'Male', 'Male', 'Male', 'Female'],
    'Grade': ['A', 'B', 'C', 'A', 'B']
}
df = pd.DataFrame(data)
for row in dataframe_to_rows(df, index=False, header=True):
    ws.append(row)

# 创建一个数据透视表
pivot_table = PivotTable()
pivot_table.source = ws['A1'].expand()
pivot_table.pivotCache = PivotCache()
pivot_table.pivotCache.cacheId = 1
pivot_table.pivotCache.recordCount = len(df) + 1

# 设置行和列的标签
row_field = DataField()
row_field.name = "Gender"
row_field.pivotArea = "row"
pivot_table.rowFields = [row_field]

column_field = DataField()
column_field.name = "Grade"
column_field.pivotArea = "column"
pivot_table.columnFields = [column_field]

# 设置数据字段
data_field = DataField()
data_field.name = "Age"
data_field.pivotArea = "data"
pivot_table.dataFields = [data_field]

# 将数据透视表添加到工作表
ws.add_pivot(pivot_table, "F5")

# 保存Excel文件
wb.save("pivot_table.xlsx")

上面的代码首先创建一个Excel文件,然后创建一个数据表,使用pandas库将数据表中的数据写入工作表。接下来,创建一个数据透视表对象,并将数据表转换为数据透视表。最后,将数据透视表添加到工作表中,并保存Excel文件

openpyxl 怎么做excel数据透视表

原文地址: http://www.cveoy.top/t/topic/ibVn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录