PivotTable类
PivotTable类
PivotTable 的摘要描述。
PivotTable 类型公开以下成员:
特性
属性 | 描述 |
---|---|
is_excel_2003_compatible | 指定刷新数据透视表时数据透视表是否兼容Excel2003, 如果为 true,则字符串必须小于或等于 255 个字符,因此如果字符串大于 255 个字符, 它会被截断。如果为 false,则字符串将不受上述限制。 默认值是true。 |
refreshed_by_who | 获取上次刷新数据透视表的用户的名称 |
refresh_date | 获取上次刷新数据透视表的日期。 |
pivot_table_style_name | 获取和设置数据透视表样式名称。 |
pivot_table_style_type | 获取和设置内置数据透视表样式。 |
column_fields | 返回当前显示为列字段的 PivotFields 对象。 |
row_fields | 返回当前显示为行字段的 PivotFields 对象。 |
page_fields | 返回当前显示为页面字段的 PivotFields 对象。 |
data_fields | 获取一个 PivotField 对象,该对象表示数据透视表中的所有数据字段。 只读。仅当 DataPiovtFiels 中有两个或多个数据字段时才会初始化。 它仅用于将 DataPivotField 添加到数据透视表行/列区域。默认位于行区域中。 |
data_field | 获取一个 PivotField 对象,该对象表示数据透视表中的所有数据字段。 只读。仅当 DataPiovtFiels 中有两个或多个数据字段时才会初始化。 它仅用于将 DataPivotField 添加到数据透视表行/列区域。默认位于行区域中。 |
base_fields | 返回一个 PivotFields 对象,其中包含数据透视表中的所有字段 |
pivot_filters | 返回一个 PivotFilterCollection 对象。 |
column_range | 返回表示范围的 CellArea 对象 包含数据透视表中的列区域。只读。 |
row_range | 返回表示范围的 CellArea 对象 包含数据透视表中的行区域。只读。 |
data_body_range | 返回一个 CellArea 对象,该对象表示包含数据区域的范围 在标题行和插入行之间的列表中。只读。 |
table_range1 | 返回一个 CellArea 对象,该对象表示包含整个数据透视表的范围, 但不包括页面字段。只读。 |
table_range2 | 返回一个 CellArea 对象,该对象表示包含整个数据透视表的范围, 包括页面字段。只读。 |
column_grand | 指示数据透视表是否显示列的总计。 |
is_grid_drop_zones | 指示数据透视表是否显示经典的数据透视表布局。 (允许在网格中拖动字段) |
row_grand | 指示数据透视表是否显示行总计。 |
display_null_string | 指示数据透视表是否显示自定义字符串 在包含空值的单元格中。 |
null_string | 获取包含空值的单元格中显示的字符串 当 DisplayNullString 属性为 true 时。默认值为空字符串。 |
display_error_string | 指示数据透视表是否在包含错误的单元格中显示自定义字符串。 |
data_field_header_name | 获取和设置数据透视表中值区域字段标题的名称。 |
error_string | 获取包含错误的单元格中显示的字符串 当 DisplayErrorString 属性为 true 时。默认值为空字符串。 |
is_auto_format | 指示数据透视表是否自动设置格式。 Excel 2003 的数据透视表选项中的“自动套用表格格式”复选框 |
autofit_column_width_on_update | 指示更新时是否自动调整列宽 |
auto_format_type | 获取数据透视表自动格式类型。 |
has_blank_rows | 指示是否添加空白行。 此属性仅适用于需要添加空白行的数据透视表自动格式类型。 |
merge_labels | 指示指定数据透视表的外层行项、列项、小计、 总计标签使用合并单元格。 |
preserve_formatting | 指示刷新或重新计算数据透视表时是否保留格式。 |
show_drill | 获取是否显示展开/折叠按钮。 |
enable_drilldown | 获取是否启用钻取。 |
enable_field_dialog | 指示数据透视表字段对话框是否可用 当用户双击数据透视表字段时。 |
enable_field_list | 获取是否启用数据透视表的字段列表。 |
enable_wizard | 指示数据透视表向导是否可用。 |
subtotal_hidden_page_items | 指示是否隐藏数据透视表中的页面字段项 包含在行和列小计、块总计和总计中。 默认值为 False。 |
grand_total_name | 返回显示在总计列或行标题中的文本字符串标签。 默认值为字符串“Grand Total”。 |
manual_update | 指示是否仅根据用户的请求重新计算数据透视表。 |
is_multiple_field_filters | 指定一个布尔值,指示数据透视表的字段是否可以设置多个筛选器。 |
missing_items_limit | 指定一个布尔值,指示数据透视表的字段是否可以设置多个筛选器。 |
enable_data_value_editing | 指定一个布尔值,指示是否允许用户编辑数据透视表数据区域中的单元格。 在值区域中启用单元格编辑 |
show_data_tips | 指定一个布尔值,指示是否应为数据透视表数据单元格显示工具提示。 |
show_member_property_tips | 指定一个布尔值,该值指示是否应从数据透视表工具提示中省略成员属性信息。 |
show_values_row | 指定一个布尔值,指示是否显示值行。 显示值行 |
show_empty_col | 指定一个布尔值,指示表中是否包含空列 |
show_empty_row | 指定一个布尔值,指示表中是否包含空行。 |
field_list_sort_ascending | 指定一个布尔值,指示数据透视表中的字段是否在字段列表中按非默认顺序排序。 |
print_drill | 指定一个布尔值,指示是否应打印钻取指示符。 显示在数据透视表上时打印展开/折叠按钮。 |
alt_text_title | 获取替代文本的标题 |
alt_text_description | 获取替代文本的描述 |
name | 获取数据透视表的名称 |
column_header_caption | 获取数据透视表的列标题标题。 |
indent | 指定紧凑轴的缩进增量,可用于将报告布局设置为紧凑形式。 |
row_header_caption | 获取数据透视表的行标题标题。 |
show_row_header_caption | 指示数据透视表中是否显示行标题标题 指示是否显示字段标题和过滤器下拉列表 |
custom_list_sort | 表示对数据进行排序时是否考虑内置自定义列表 |
pivot_format_conditions | 获取数据透视表的格式条件。 |
page_field_order | 获取将页面字段添加到数据透视表布局的顺序。 |
page_field_wrap_count | 获取数据透视表中每列或行中的页面字段数。 |
tag | 获取与数据透视表一起保存的字符串。 |
save_data | 指示数据透视表的数据是否与工作簿一起保存。 |
refresh_data_on_opening_file | 指示打开文件时是否刷新数据。 |
refresh_data_flag | 指示是否刷新数据。 |
external_connection_data_source | 获取外部连接数据源。 |
data_source | 获取和设置数据透视表的数据源。 |
pivot_formats | 获取应用于数据透视表的格式集合。 |
item_print_titles | 指定数据透视项标题是否在行轴上的位 在表格形式的数据透视字段的每个打印页面上重复。 |
print_titles | 指示是否根据工作表的打印标题设置 在数据透视表报告上。默认值为 false。 |
display_immediate_items | 指示行和列区域中的项目是否可见 当数据透视表的数据区域为空时。默认值是true。 |
is_selected | 指示是否选择数据透视表。 |
show_pivot_style_row_header | 指示数据透视表中的行标题是否应应用该样式。 |
show_pivot_style_column_header | 指示数据透视表中的列标题是否应应用该样式。 |
show_pivot_style_row_stripes | 指示是否应用行条纹格式。 |
show_pivot_style_column_stripes | 指示是否应用列条带格式。 |
show_pivot_style_last_column | 指示是否应用列条带格式。 |
方法
方法 | 描述 |
---|---|
remove_field | 从特定字段区域中删除字段 |
remove_field | 从特定字段区域中删除字段 |
remove_field | 从特定字段区域中删除字段 |
add_field_to_area | 将字段添加到特定区域。 |
add_field_to_area | 将字段添加到特定区域。 |
add_field_to_area | 将字段添加到特定区域。 |
add_calculated_field | 将计算字段添加到数据透视字段。 |
add_calculated_field | 将计算字段添加到数据透视字段并将其拖动到数据区域。 |
move | 将数据透视表移动到工作表中的其他位置。 |
move | 将数据透视表移动到工作表中的其他位置。 |
format | 设置数据透视表选定区域的格式。 |
format | 设置数据透视表区域中的单元格格式 |
set_auto_group_field | 按数据透视表设置自动字段组。 |
set_auto_group_field | 按数据透视表设置自动字段组。 |
set_manual_group_field | 通过数据透视表设置手动字段组。 |
set_manual_group_field | 通过数据透视表设置手动字段组。 |
set_manual_group_field | 通过数据透视表设置手动字段组。 |
set_manual_group_field | 通过数据透视表设置手动字段组。 |
set_ungroup | 设置按数据透视表取消分组 |
set_ungroup | 设置按数据透视表取消分组 |
copy_style | 从另一个数据透视表复制命名样式。 |
show_report_filter_page | 根据PivotField显示所有报表过滤页面,PivotField必须位于PageFields中。 |
show_report_filter_page_by_name | 根据数据透视字段的名称显示所有报表筛选页面,数据透视字段必须位于页面字段中。 |
show_report_filter_page_by_index | 根据PageFields中的位置索引显示所有报表过滤器页面 |
fields | 根据字段类型获取具体字段。 |
change_data_source | 设置数据透视表的源数据。 表 1!$A$1:$C$3 |
get_source | 获取数据透视表的源数据。 |
refresh_data | 从数据源刷新数据透视表的数据和设置。 |
calculate_data | 将数据透视表的数据计算到单元格中。 |
clear_data | 清除数据透视表的数据和格式 |
calculate_range | 计算数据透视表的范围。 |
format_all | 设置数据透视表区域中所有单元格的格式 |
format_row | 设置数据透视表区域中行数据的格式 |
get_horizontal_breaks | 获取水平分页符的数据透视表行索引列表 |
show_in_compact_form | 以紧凑的形式布局数据透视表。 |
show_in_outline_form | 以大纲形式布局数据透视表。 |
show_in_tabular_form | 以表格形式布局数据透视表。 |
get_cell_by_display_name | 通过PivotField的显示名称获取Cell 对象。 |
get_children | 获取使用此数据透视表数据作为数据源的子数据透视表。 |
例子
from aspose.cells import FormatConditionType, OperatorType, Workbook
from aspose.cells.pivot import PivotFieldType, PivotFilterType, PivotTableStyleType
from aspose.pydrawing import Color
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"
# Add PivotFilter
index = pivot.pivot_filters.add(0, PivotFilterType.COUNT)
filter = pivot.pivot_filters[index]
filter.auto_filter.filter_top10(0, False, False, 2)
# Add PivotFormatCondition
formatIndex = pivot.pivot_format_conditions.add()
pfc = pivot.pivot_format_conditions[formatIndex]
fcc = pfc.format_conditions
fcc.add_area(pivot.data_body_range)
idx = fcc.add_condition(FormatConditionType.CELL_VALUE)
fc = fcc[idx]
fc.formula1 = "100"
fc.operator = OperatorType.GREATER_OR_EQUAL
fc.style.background_color = Color.red
pivot.refresh_data()
pivot.calculate_data()
# do your business
book.save("out.xlsx")