PivotField类

PivotField类

代表数据透视表中的一个字段。

PivotField 类型公开以下成员:

属性

属性描述
pivot_items获取数据透视字段的数据透视项
range获取数据透视字段的分组范围
group_settings获取数据透视表字段的分组设置。
is_calculated_field指示指定的数据透视表字段是否为计算字段。
is_value_fields指示该字段是否代表值字段。
base_index表示基础数据透视字段中的数据透视字段索引。
position代表该地区PivotField的索引。
region_type指定显示此字段的数据透视表区域。
name表示 PivotField 的名称。
display_name表示 PivotField 显示名称。
is_auto_subtotals指示指定字段是否显示自动小计。默认值为 true。
drag_to_column表示指定的字段是否可以拖动到列位置。
默认值为 true。
drag_to_hide指示指定的字段是否可以拖动到隐藏位置。
默认值为 true。
drag_to_row指示指定的字段是否可以拖动到行位置。
默认值为 true。
drag_to_page表示指定的字段是否可以拖动到页面位置。
默认值为 true。
drag_to_data指示指定字段是否可以拖动到数据位置。
默认值为 true。
is_multiple_item_selection_allowed指示字段是否可以有多个项目
在页面字段中选择
默认值为 false。
is_repeat_item_labels表示区域中字段的标签是否重复。
默认值为 false。
is_include_new_items_in_filter指示是否在手动筛选的字段中包含新项目。
默认值为 false。
is_insert_page_breaks_between_items指示是否在每个项目后插入分页符。
默认值为 false。
show_all_items指示是否所有项目都显示在数据透视表中,
即使它们不包含摘要数据。
显示没有数据的项目
默认值为 false。
non_auto_sort_default指示将应用于此数据透视表字段的排序操作是自动排序操作还是简单数据排序。
is_auto_sort指示指定的数据透视表字段是否自动排序。
is_ascend_sort指示指定的数据透视表字段是否按自动升序排序。
sort_setting获取自动排序的所有设置
auto_sort_field表示自动排序的字段的索引。
-1 表示 PivotField 本身,其他表示数据字段的位置。
is_auto_show指示是否自动显示指定的数据透视表字段,仅对 Excel 2003 有效。
is_ascend_show指示指定的数据透视表字段是否自动按升序显示。
auto_show_count表示顶部或底部项目的数量
会自动显示在指定的数据透视表字段中。
auto_show_field表示自动显示字段索引。-1 表示 PivotField 本身。
它应该是数据字段的索引。
function表示用于汇总数据透视表数据字段的函数。
show_values_setting获取使用 ShowDataAs 计算时显示值的设置。
data_display_format表示如何显示数据透视表报表的数据字段中的值。
base_field_index表示使用 ShowDataAs 计算时自定义计算的基本字段。
base_item_position表示使用 ShowDataAs 计算时自定义计算的基本字段中的项目。
仅对数据字段有效。
因为 PivotItemPosition.Custom 仅供读取,如果需要设置 PivotItemPosition.Custom,
请设置 PivotField.BaseItemIndex 属性。
base_item_index表示使用 ShowDataAs 计算时自定义计算的基本字段中的项目。
仅对数据字段有效。
current_page_item表示页面字段显示的当前页面项(仅对页面字段有效)。
number表示数字和日期的内置显示格式。
insert_blank_row指示是否在每个项目后插入空行。
show_subtotal_at_top当 ShowInOutlineForm 为 true 时,在项目列表的顶部而不是底部显示小计
show_in_outline_form指示是否在数据透视表视图中以大纲形式布局此字段
number_format表示数字和日期的自定义显示格式。
items获取此字段中所有数据透视表项的标签。
original_items获取原始基础物品;
item_count获取此数据透视字段中基础项目的数量。
show_compact指示是否在数据透视表视图中显示同一列中下一个字段的标签

方法

方法描述
group_by(self, interval, new_field)自动将字段与内部字段分组
group_by(self, start, end, groups, interval, first_as_new_field)按日期组类型对文件进行分组。
group_by(self, start, end, interval, new_field)按编号对文件进行分组。
group_by(self, custom_group_items, new_field)自定义分组字段。
sort_by(self, sort_type, field_sorted_by)对此数据透视表字段进行排序。
sort_by(self, sort_type, field_sorted_by, data_type, cell_name)对此数据透视表字段进行排序。
hide_item(self, index, is_hidden)设置数据字段中的特定 PivotItem 是否隐藏。
hide_item(self, item_value, is_hidden)设置数据字段中的特定 PivotItem 是否隐藏。
init_pivot_items(self)初始化数据透视字段的数据透视项
ungroup(self)取消数据透视字段的分组。
get_pivot_filter_by_type(self, type)根据类型获取数据透视表字段的数据透视表过滤器
get_pivot_filters(self)获取数据透视字段的数据透视过滤器
get_filters(self)获取此数据透视表字段的所有数据透视表过滤器。
clear_filter(self)清除此数据透视字段上的过滤器设置。
filter_top10(self, value_field_index, type, is_top, item_count)按数据透视字段的值进行过滤。
filter_by_value(self, value_field_index, type, value1, value2)按数据透视字段的值进行过滤。
filter_by_label(self, type, label1, label2)按行或列数据透视字段的标题进行过滤。
filter_by_date(self, type, date_time1, date_time2)按行或列数据透视字段的日期设置进行过滤。
get_calculated_field_formula(self)获取指定计算字段的公式字符串。
get_formula(self)获取计算字段的公式。
set_subtotals(self, subtotal_type, shown)设置指定字段是否显示小计。
get_subtotals(self, subtotal_type)表示是否显示指定的小计。
show_values_as(self, display_format, base_field, base_item_position_type, base_item)当使用 ShowDataAs 计算时,以不同的显示格式显示数据字段的值。
is_hidden_item(self, index)获取特定 PivotItem 是否隐藏。
is_hidden_item_detail(self, index)获取是否隐藏特定 PivotItem 的详细信息。
hide_item_detail(self, index, is_hidden_detail)设置数据透视字段中的特定 PivotItem 是否隐藏详细信息。
hide_detail(self, is_hidden_detail)设置数据透视表字段中的数据透视表项是否隐藏细节。即折叠/展开该字段。
add_calculated_item(self, name, formula)向数据透视表字段添加计算公式项。

例子

from aspose.cells import Workbook
from aspose.cells.pivot import PivotFieldType, PivotTableStyleType

book = Workbook()
sheet = book.worksheets[0]
cells = sheet.cells
cells.get(0, 0).value = "fruit"
cells.get(1, 0).value = "grape"
cells.get(2, 0).value = "blueberry"
cells.get(3, 0).value = "kiwi"
cells.get(4, 0).value = "cherry"
cells.get(5, 0).value = "grape"
cells.get(6, 0).value = "blueberry"
cells.get(7, 0).value = "kiwi"
cells.get(8, 0).value = "cherry"
cells.get(0, 1).value = "year"
cells.get(1, 1).value = 2020
cells.get(2, 1).value = 2020
cells.get(3, 1).value = 2020
cells.get(4, 1).value = 2020
cells.get(5, 1).value = 2021
cells.get(6, 1).value = 2021
cells.get(7, 1).value = 2021
cells.get(8, 1).value = 2021
cells.get(0, 2).value = "amount"
cells.get(1, 2).value = 50
cells.get(2, 2).value = 60
cells.get(3, 2).value = 70
cells.get(4, 2).value = 80
cells.get(5, 2).value = 90
cells.get(6, 2).value = 100
cells.get(7, 2).value = 110
cells.get(8, 2).value = 120
pivots = sheet.pivot_tables
pivotIndex = pivots.add("=Sheet1!A1:C9", "A12", "TestPivotTable")
pivot = pivots[pivotIndex]
pivot.add_field_to_area(PivotFieldType.ROW, "fruit")
pivot.add_field_to_area(PivotFieldType.COLUMN, "year")
pivot.add_field_to_area(PivotFieldType.DATA, "amount")
pivot.pivot_table_style_type = PivotTableStyleType.PIVOT_TABLE_STYLE_MEDIUM10
# Change PivotField's attributes
rowField = pivot.row_fields[0]
rowField.display_name = "custom display name"
pivot.refresh_data()
pivot.calculate_data()
# do your business
book.save("out.xlsx")

也可以看看