Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
pivot_field.group() 方法(按数据类型自动分组)和 pivot_field.group(pivot_field_group_options)(自定义分组选项)提供此功能。无参数的 pivot_field.group() 重载会检查字段的数据类型并自动对其进行分组。仅包含日期(和空白)的字段按月分组。仅包含数字(和空白)的字段使用自动间隔分组到数值区域中。
import aspose.cells as ac
# 加载示例工作簿
wb = ac.Workbook("sampleGroupPivotFieldsInPivotTable.xlsx")
# 访问第二个工作表及其数据透视表
pt = wb.worksheets[1].pivot_tables[0]
# 自动分组第一个行字段。
# 该字段包含日期,因此按月份分组。
field = pt.row_fields[0]
field.group()
# 计算数据透视表数据并保存输出文件
pt.calculate_data()
wb.save("outputAutoGroupPivotField.xlsx")
PivotFieldGroupOptions 类提供自定义分组配置。对于日期字段,设置 start_date、end_date 和 group_types。对于数值字段,设置 start_number、end_number 和 interval。new_pivot_field 属性控制分组是否在原始字段旁边创建新的透视字段(请参阅本文末尾的“注意”部分)。
以下示例按开始日期和结束日期之间的月和季度对示例数据透视表的日期行字段进行分组。代码加载 示例 Excel 文件,执行分组,计算数据透视表数据,并保存分组结果。屏幕截图显示了效果:日期行字段现已按季度和月份分组。
请注意,options.group_types 中值的顺序将被忽略。无论按什么顺序列出分组类型,分组字段始终从最大期间显示到最小期间:年、季度、月、天、小时、分钟、秒。在本例中,月份在 options.group_types 中列在季度之前,但季度显示为外部级别,月份显示为内部级别。
import aspose.cells as ac
from datetime import datetime
from aspose.cells.pivot import PivotGroupByType
from aspose.cells.pivot import PivotFieldGroupOptions
# 加载示例工作簿
wb = ac.Workbook("sampleGroupPivotFieldsInPivotTable.xlsx")
# 访问第二个工作表及其数据透视表
pt = wb.worksheets[1].pivot_tables[0]
# 按月份和季度对第一个行字段(日期字段)进行分组
options = PivotFieldGroupOptions()
options.start_date = datetime(2008, 1, 1)
options.end_date = datetime(2008, 9, 5)
options.group_types = [PivotGroupByType.MONTHS, PivotGroupByType.QUARTERS]
pt.row_fields[0].group(options)
# 计算数据透视表数据并保存输出文件
pt.calculate_data()
wb.save("outputGroupPivotFieldsInPivotTable.xlsx")

示例数据透视表的 FieldTwo 最初是数据(值)字段。由于只能对行或列字段进行分组,因此代码首先调用 pivot_table.add_field_to_area(PivotFieldType.ROW, "FieldTwo") 将 FieldTwo 移动到行区域,刷新数据透视表,然后使用 start_number=0、end_number=5 和 interval=2 将数值字段分组为 0-1、2-3 和 4-5 这些区域。
import aspose.cells as ac
from aspose.cells.pivot import PivotFieldType
from aspose.cells.pivot import PivotFieldGroupOptions
# 加载示例工作簿
wb = ac.Workbook("sampleGroupPivotFieldsInPivotTable.xlsx")
# 访问第二个工作表及其数据透视表
pt = wb.worksheets[1].pivot_tables[0]
# FieldTwo 是一个数据字段:先将其移动到行区域,
# 因为只有行/列字段才能进行分组
pt.add_field_to_area(PivotFieldType.ROW, "FieldTwo")
pt.calculate_data()
# 将数字字段分组为 0-1、2-3、4-5 的区间
options = PivotFieldGroupOptions()
options.start_number = 0.0
options.end_number = 5.0
options.interval = 2.0
pt.row_fields[1].group(options)
# 计算数据透视表数据并保存输出文件
pt.calculate_data()
wb.save("outputNumberGroupPivotField.xlsx")
pivot_field.group_by() 方法重载已弃用并从 API 接口中移除。pivot_field.group() 和 pivot_field.group(pivot_field_group_options) 是替代方法。pivot_field.group() 方法遵循与 Excel 相同的行为。PivotFieldGroupOptions.new_pivot_field 属性是为了与旧版本兼容而存在的:对于数值分组,默认值为 false,对于日期时间分组,默认值为 true;如果希望日期分组替换原始透视字段而不是创建新的透视字段,请将其设置为 false。PivotFieldGroupOptions.interval 属性仅对数值分组和按天进行日期分组(例如,将日期分组为 7 天周期)有效;当按月、季度或年对日期进行分组时,该属性将被忽略。Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.