PivotTable
内容
[
隐藏
]PivotTable class
数据透视表的摘要描述。
public class PivotTable : IDisposable
特性
姓名 | 描述 |
---|---|
AltTextDescription { get; set; } | 获取替代文本的描述 |
AltTextTitle { get; set; } | 获取 altertext 的标题 |
AutoFormatType { get; set; } | 获取数据透视表自动格式化类型。 |
BaseFields { get; } | 返回一个 PivotFields 对象,其中包括数据透视表报告中的所有字段 |
ColumnFields { get; } | 返回当前显示为列字段的 PivotFields 对象。 |
ColumnGrand { get; set; } | 指示数据透视表是否显示列的总计。 |
ColumnHeaderCaption { get; set; } | 获取数据透视表的列标题标题。 |
ColumnRange { get; } | 返回代表 range 的 CellArea 对象,该对象包含数据透视表中的列区域。只读。 |
CustomListSort { get; set; } | 表示排序数据时是否考虑内置自定义列表 |
DataBodyRange { get; } | 返回一个 CellArea 对象,该对象表示在标题行和插入行之间的列表中包含数据 area 的范围。只读。 |
DataField { get; } | 获取一个PivotField 对象,表示数据透视表中的所有数据字段。 只读。只有当DataPiovtFiels 中有两个或多个数据字段时才会初始化。 仅用于将DataPivotField 添加到数据透视表的行/列区域 。默认在行区域中。 |
DataFields { get; } | 获取一个PivotField 对象,表示数据透视表中的所有数据字段。 只读。只有当DataPiovtFiels 中有两个或多个数据字段时才会初始化。 仅用于将DataPivotField 添加到数据透视表的行/列区域 。默认在行区域中。 |
DataSource { get; set; } | 获取和设置数据透视表的数据源。 |
DisplayErrorString { get; set; } | 指示数据透视表是否在包含错误的单元格中显示自定义字符串。 |
DisplayImmediateItems { get; set; } | 表示当数据透视表的数据区为空时,行和列区域的项目是否可见 。默认值为真。 |
DisplayNullString { get; set; } | 指示数据透视表是否在包含空值的单元格中显示自定义字符串 。 |
EnableDataValueEditing { get; set; } | 指定一个布尔值,指示是否允许用户编辑数据透视表的数据区域中的单元格。 启用值区域中的单元格编辑 |
EnableDrilldown { get; set; } | 获取是否启用向下钻取。 |
EnableFieldDialog { get; set; } | 指示当用户双击数据透视表字段时,数据透视表字段对话框是否可用 。 |
EnableFieldList { get; set; } | 获取是否启用数据透视表的字段列表。 |
EnableWizard { get; set; } | 指示数据透视表向导是否可用。 |
ErrorString { get; set; } | 当 DisplayErrorString 属性为 true 时,获取在包含错误 的单元格中显示的字符串。默认值为空字符串。 |
ExternalConnectionDataSource { get; } | 获取外部连接数据源。 |
FieldListSortAscending { get; set; } | 指定一个布尔值,指示数据透视表中的字段是否按字段列表中的非默认顺序排序。 |
GrandTotalName { get; set; } | 返回显示在总计列或行标题中的文本字符串标签。 默认值为字符串“总计”。 |
HasBlankRows { get; set; } | 表示是否添加空白行。 该属性仅适用于需要添加空白行的数据透视表自动格式类型。 |
Indent { get; set; } | 指定紧凑轴的缩进增量,可用于将报表布局设置为紧凑形式。 |
IsAutoFormat { get; set; } | 指示数据透视表报表是否自动格式化。 复选框“自动格式化表”,位于 Excel 2003 的数据透视表选项中 复选框“更新时自动调整列宽”,位于数据透视表选项中:Excel 2007 的布局格式 |
IsExcel2003Compatible { get; set; } | 指定刷新数据透视表时数据透视表是否兼容Excel2003, 如果为true,字符串必须小于等于255个字符,所以如果字符串大于255个字符, 会被截断。如果为false,则字符串将没有上述限制。 默认值为true。 |
IsGridDropZones { get; set; } | 指示数据透视表是否显示经典的数据透视表布局。 (允许在网格中拖动字段) |
IsMultipleFieldFilters { get; set; } | 指定一个布尔值,指示数据透视表的字段是否可以设置多个过滤器。 |
IsSelected { get; set; } | 表示是否选择了数据透视表。 |
ItemPrintTitles { get; set; } | 一个位,指定是否在每个打印页面上为表格形式的枢轴字段重复轴 行上的枢轴项目标题。 |
ManualUpdate { get; set; } | 指示是否仅应用户请求重新计算数据透视表。 |
MergeLabels { get; set; } | 指示指定数据透视表的外行项、列项、小计、 和总计标签是否使用合并单元格。 |
MissingItemsLimit { get; set; } | 指定一个布尔值,指示数据透视表的字段是否可以设置多个过滤器。 |
Name { get; set; } | 获取数据透视表的名称 |
NullString { get; set; } | 当 DisplayNullString 属性为 true 时,获取包含空值的单元格中显示的字符串 。默认值为空字符串。 |
PageFieldOrder { get; set; } | 获取页面字段添加到数据透视表布局的顺序。 |
PageFields { get; } | 返回当前显示为页面字段的 PivotFields 对象。 |
PageFieldWrapCount { get; set; } | 获取数据透视表中每列或每行的页字段数。 |
PivotFilters { get; } | 返回一个 PivotFilterCollection 对象。 |
PivotFormatConditions { get; } | 获取数据透视表的格式条件。 |
PivotTableStyleName { get; set; } | 获取和设置可透视的样式名称。 |
PivotTableStyleType { get; set; } | 获取和设置内置数据透视表样式。 |
PreserveFormatting { get; set; } | 表示刷新或重新计算数据透视表时是否保留格式。 |
PrintDrill { get; set; } | 指定一个布尔值,指示是否应打印钻孔指示器。 当显示在数据透视表上时打印展开/折叠按钮。 |
PrintTitles { get; set; } | 指示工作表的打印标题是否在数据透视表上设置为 based 。默认值为假。 |
RefreshDataFlag { get; set; } | 表示是否刷新数据。 |
RefreshDataOnOpeningFile { get; set; } | 表示打开文件时是否刷新数据。 |
RefreshDate { get; } | 获取上次刷新数据透视表的日期。 |
RefreshedByWho { get; } | 获取上次刷新数据透视表的用户名 |
RowFields { get; } | 返回当前显示为行字段的 PivotFields 对象。 |
RowGrand { get; set; } | 指示数据透视表是否显示行总计。 |
RowHeaderCaption { get; set; } | 获取数据透视表的行标题标题。 |
RowRange { get; } | 返回代表 range 的 CellArea 对象,该对象包含数据透视表中的行区域。只读。 |
SaveData { get; set; } | 指示数据透视表的数据是否与工作簿一起保存。 |
ShowDataTips { get; set; } | 指定一个布尔值,该值指示是否应为数据透视表数据单元格显示工具提示。 |
ShowDrill { get; set; } | 获取是否显示展开/折叠按钮。 |
ShowEmptyCol { get; set; } | 指定一个布尔值,指示是否在表中包含空列 |
ShowEmptyRow { get; set; } | 指定一个布尔值,指示是否在表中包含空行。 |
ShowMemberPropertyTips { get; set; } | 指定一个布尔值,指示是否应从数据透视表工具提示中省略成员属性信息。 |
ShowPivotStyleColumnHeader { get; set; } | 指示数据透视表中的列标题是否应应用样式。 |
ShowPivotStyleColumnStripes { get; set; } | 指示是否应用列带格式。 |
ShowPivotStyleLastColumn { get; set; } | 指示是否应用列带格式。 |
ShowPivotStyleRowHeader { get; set; } | 指示数据透视表中的行标题是否应应用样式。 |
ShowPivotStyleRowStripes { get; set; } | 指示是否应用行条纹格式。 |
ShowRowHeaderCaption { get; set; } | 指示是否在数据透视表中显示行标题标题 指示是否显示字段标题和过滤器下拉菜单 |
ShowValuesRow { get; set; } | 指定一个布尔值,指示是否显示值行。 显示值行 |
SubtotalHiddenPageItems { get; set; } | 表示数据透视表报表 中隐藏的页面字段项是否包含在行列小计、块总计和总计中。 默认值为False。 |
TableRange1 { get; } | 返回一个 CellArea 对象,该对象表示包含整个数据透视表的范围, 但不包括页面字段。只读。 |
TableRange2 { get; } | 返回一个 CellArea 对象,表示包含整个数据透视表的范围, 包括页面字段。只读。 |
Tag { get; set; } | 获取与数据透视表一起保存的字符串。 |
方法
姓名 | 描述 |
---|---|
AddCalculatedField(string, string) | 将计算字段添加到数据透视字段并将其拖动到数据区域。 |
AddCalculatedField(string, string, bool) | 将计算字段添加到数据透视字段。 |
AddFieldToArea(PivotFieldType, int) | 将字段添加到特定区域。 |
AddFieldToArea(PivotFieldType, PivotField) | 将字段添加到特定区域。 |
AddFieldToArea(PivotFieldType, string) | 将字段添加到特定区域。 |
CalculateData() | 将数据透视表的数据计算到单元格。 |
CalculateRange() | 计算数据透视表的范围。 |
ChangeDataSource(string[]) | 设置数据透视表的源数据。 Sheet1!$A$1:$C$3 |
ClearData() | 清除数据透视表的数据和格式 |
CopyStyle(PivotTable) | 从另一个数据透视表复制命名样式。 |
Dispose() | 执行与释放、释放或 重置非托管资源相关的应用程序定义任务。 |
Fields(PivotFieldType) | 通过字段类型获取具体字段 |
Format(int, int, Style) | 格式化可透视区域中的单元格 |
FormatAll(Style) | 格式化可透视区域中的所有单元格 |
FormatRow(int, Style) | 格式化数据透视区中的行数据 |
GetCellByDisplayName(string) | 通过PivotField的DisplayName获取Cell对象 |
GetChildren() | 获取使用此数据透视表数据作为数据源的子数据透视表。 |
GetHorizontalBreaks() | 获取水平分页符的数据透视表行索引列表 |
GetSource() | 获取数据透视表的源数据。 |
Move(string) | 将数据透视表移动到工作表中的不同位置。 |
Move(int, int) | 将数据透视表移动到工作表中的不同位置。 |
RefreshData() | 刷新数据透视表的数据并从它的数据源设置。 |
RemoveField(PivotFieldType, int) | 从特定字段 area 中删除字段 |
RemoveField(PivotFieldType, PivotField) | 从特定字段区域中删除字段 |
RemoveField(PivotFieldType, string) | 从特定字段 area 中删除字段 |
SetAutoGroupField(int) | 通过数据透视表设置自动字段组。 |
SetAutoGroupField(PivotField) | 通过数据透视表设置自动字段组。 |
SetManualGroupField(int, DateTime, DateTime, ArrayList, int) | 通过数据透视表设置手动字段组。 |
SetManualGroupField(int, double, double, ArrayList, double) | 通过数据透视表设置手动字段组。 |
SetManualGroupField(PivotField, DateTime, DateTime, ArrayList, int) | 通过数据透视表设置手动字段组。 |
SetManualGroupField(PivotField, double, double, ArrayList, double) | 通过数据透视表设置手动字段组。 |
SetUngroup(int) | 设置按数据透视表取消分组 |
SetUngroup(PivotField) | 设置按数据透视表取消分组 |
ShowInCompactForm() | 以紧凑的形式布局数据透视表。 |
ShowInOutlineForm() | 以大纲形式布局数据透视表。 |
ShowInTabularForm() | 以表格形式布局数据透视表。 |
ShowReportFilterPage(PivotField) | 根据PivotField显示所有报表过滤页面,PivotField必须位于PageFields中。 |
ShowReportFilterPageByIndex(int) | 根据PageFields中的位置索引显示所有报表过滤页面 |
ShowReportFilterPageByName(string) | 根据PivotField的名称显示所有报表过滤页面,PivotField必须位于PageFields中。 |
例子
[C#]
Workbook book = new Workbook();
Worksheet sheet = book.Worksheets[0];
Cells cells = sheet.Cells;
cells[0, 0].Value = "fruit";
cells[1, 0].Value = "grape";
cells[2, 0].Value = "blueberry";
cells[3, 0].Value = "kiwi";
cells[4, 0].Value = "cherry";
cells[5, 0].Value = "grape";
cells[6, 0].Value = "blueberry";
cells[7, 0].Value = "kiwi";
cells[8, 0].Value = "cherry";
cells[0, 1].Value = "year";
cells[1, 1].Value = 2020;
cells[2, 1].Value = 2020;
cells[3, 1].Value = 2020;
cells[4, 1].Value = 2020;
cells[5, 1].Value = 2021;
cells[6, 1].Value = 2021;
cells[7, 1].Value = 2021;
cells[8, 1].Value = 2021;
cells[0, 2].Value = "amount";
cells[1, 2].Value = 50;
cells[2, 2].Value = 60;
cells[3, 2].Value = 70;
cells[4, 2].Value = 80;
cells[5, 2].Value = 90;
cells[6, 2].Value = 100;
cells[7, 2].Value = 110;
cells[8, 2].Value = 120;
PivotTableCollection pivots = sheet.PivotTables;
int pivotIndex = pivots.Add("=Sheet1!A1:C9", "A12", "TestPivotTable");
PivotTable pivot = pivots[pivotIndex];
pivot.AddFieldToArea(PivotFieldType.Row, "fruit");
pivot.AddFieldToArea(PivotFieldType.Column, "year");
pivot.AddFieldToArea(PivotFieldType.Data, "amount");
pivot.PivotTableStyleType = PivotTableStyleType.PivotTableStyleMedium10;
//改变PivotField的属性
PivotField rowField = pivot.RowFields[0];
rowField.DisplayName = "custom display name";
//添加透视过滤器
int index = pivot.PivotFilters.Add(0, PivotFilterType.Count);
PivotFilter filter = pivot.PivotFilters[index];
filter.AutoFilter.FilterTop10(0, false, false, 2);
//添加PivotFormatCondition
int formatIndex = pivot.PivotFormatConditions.Add();
PivotFormatCondition pfc = pivot.PivotFormatConditions[formatIndex];
FormatConditionCollection fcc = pfc.FormatConditions;
fcc.AddArea(pivot.DataBodyRange);
int idx = fcc.AddCondition(FormatConditionType.CellValue);
FormatCondition fc = fcc[idx];
fc.Formula1 = "100";
fc.Operator = OperatorType.GreaterOrEqual;
fc.Style.BackgroundColor = Color.Red;
pivot.RefreshData();
pivot.CalculateData();
//做你的事
book.Save("out.xlsx");
[Visual Basic]
Dim book As Workbook = New Workbook()
Dim sheet As Worksheet = book.Worksheets(0)
Dim cells As Cells = sheet.Cells
cells(0, 0).Value = "fruit"
cells(1, 0).Value = "grape"
cells(2, 0).Value = "blueberry"
cells(3, 0).Value = "kiwi"
cells(4, 0).Value = "cherry"
cells(5, 0).Value = "grape"
cells(6, 0).Value = "blueberry"
cells(7, 0).Value = "kiwi"
cells(8, 0).Value = "cherry"
cells(0, 1).Value = "year"
cells(1, 1).Value = 2020
cells(2, 1).Value = 2020
cells(3, 1).Value = 2020
cells(4, 1).Value = 2020
cells(5, 1).Value = 2021
cells(6, 1).Value = 2021
cells(7, 1).Value = 2021
cells(8, 1).Value = 2021
cells(0, 2).Value = "amount"
cells(1, 2).Value = 50
cells(2, 2).Value = 60
cells(3, 2).Value = 70
cells(4, 2).Value = 80
cells(5, 2).Value = 90
cells(6, 2).Value = 100
cells(7, 2).Value = 110
cells(8, 2).Value = 120
Dim pivots As PivotTableCollection = sheet.PivotTables
Dim pivotIndex As Int32 = pivots.Add("=Sheet1!A1:C9", "A12", "TestPivotTable")
Dim pivot As PivotTable = pivots(pivotIndex)
pivot.AddFieldToArea(PivotFieldType.Row, "fruit")
Pivot.AddFieldToArea(PivotFieldType.Column, "year")
Pivot.AddFieldToArea(PivotFieldType.Data, "amount")
pivot.PivotTableStyleType = PivotTableStyleType.PivotTableStyleMedium10
'Change PivotField's attributes
Dim rowField As PivotField = pivot.RowFields(0)
rowField.DisplayName = "custom display name"
'添加透视过滤器
Dim filterIndex As Int32 = pivot.PivotFilters.Add(0, PivotFilterType.Count)
Dim filter As PivotFilter = pivot.PivotFilters(filterIndex)
filter.AutoFilter.FilterTop10(0, False, False, 2)
'添加 PivotFormatCondition
Dim formatIndex As Int32 = pivot.PivotFormatConditions.Add()
Dim pfc As PivotFormatCondition = pivot.PivotFormatConditions(formatIndex)
Dim fcc As FormatConditionCollection = pfc.FormatConditions
fcc.AddArea(pivot.DataBodyRange)
Dim idx As Int32 = fcc.AddCondition(FormatConditionType.CellValue)
Dim fc As FormatCondition = fcc(idx)
fc.Formula1 = "100"
fc.Operator = OperatorType.GreaterOrEqual
fc.Style.BackgroundColor = Color.Red
pivot.RefreshData()
pivot.CalculateData()
book.Save("out_vb.xlsx")
也可以看看
- 命名空间 Aspose.Cells.Pivot
- 部件 Aspose.Cells