PivotTable

PivotTable class

Descripción resumida de la tabla dinámica.

public class PivotTable : IDisposable

Propiedades

NombreDescripción
AltTextDescription { get; set; }Obtiene la descripción del texto alternativo
AltTextTitle { get; set; }Obtiene el título del altertext
AutoFormatType { get; set; }Obtiene el tipo de formato automático de tabla dinámica.
BaseFields { get; }Devuelve un objeto PivotFields que incluye todos los campos en el informe de tabla dinámica
ColumnFields { get; }Devuelve un objeto PivotFields que actualmente se muestra como campos de columna.
ColumnGrand { get; set; }Indica si el informe de tabla dinámica muestra los totales generales de las columnas.
ColumnHeaderCaption { get; set; }Obtiene el título del encabezado de columna de la tabla dinámica.
ColumnRange { get; }Devuelve un objeto CellArea que representa el rango que contiene el área de la columna en el informe de tabla dinámica. Solo lectura.
CustomListSort { get; set; }Indica si se debe considerar una lista personalizada integrada al ordenar data
DataBodyRange { get; }Devuelve un objeto CellArea que representa el rango que contiene los datos area en la lista entre la fila de encabezado y la fila de inserción. Solo lectura.
DataField { get; }Obtiene un objeto PivotField que representa todos los campos de datos en una tabla dinámica. Solo lectura. Sería inicial solo cuando hay dos o más campos de datos en DataPiovtFiels. Solo se usa para agregar DataPivotField a la fila/columna de la tabla dinámica. área . El valor predeterminado está en el área de la fila.
DataFields { get; }Obtiene un objeto PivotField que representa todos los campos de datos en una tabla dinámica. Solo lectura. Sería inicial solo cuando hay dos o más campos de datos en DataPiovtFiels. Solo se usa para agregar DataPivotField a la fila/columna de la tabla dinámica. área . El valor predeterminado está en el área de la fila.
DataSource { get; set; }Obtiene y establece la fuente de datos de la tabla dinámica.
DisplayErrorString { get; set; }Indica si el informe de tabla dinámica muestra una cadena personalizada en las celdas que contienen errores.
DisplayImmediateItems { get; set; }Indica si los elementos de las áreas de fila y columna están visibles cuando el área de datos de la tabla dinámica está vacía. El valor predeterminado es verdadero.
DisplayNullString { get; set; }Indica si el informe de tabla dinámica muestra una cadena personalizada en las celdas que contienen valores nulos.
EnableDataValueEditing { get; set; }Especifica un valor booleano que indica si el usuario puede editar las celdas en el área de datos de la tabla dinámica. Habilitar la edición de celdas en el área de valores
EnableDrilldown { get; set; }Obtiene si el desglose está habilitado.
EnableFieldDialog { get; set; }Indica si el cuadro de diálogo Campo de tabla dinámica está disponible cuando el usuario hace doble clic en el campo de tabla dinámica.
EnableFieldList { get; set; }Obtiene si habilita la lista de campos para la tabla dinámica.
EnableWizard { get; set; }Indica si el Asistente para tablas dinámicas está disponible.
ErrorString { get; set; }Obtiene la cadena que se muestra en las celdas que contienen errores cuando la propiedad DisplayErrorString es verdadera. El valor predeterminado es una cadena vacía.
ExternalConnectionDataSource { get; }Obtiene la fuente de datos de la conexión externa.
FieldListSortAscending { get; set; }Especifica un valor booleano que indica si los campos de la tabla dinámica están ordenados en un orden diferente al predeterminado en la lista de campos.
GrandTotalName { get; set; }Devuelve la etiqueta de cadena de texto que se muestra en el encabezado de fila o columna de total general. El valor predeterminado es la cadena “Total general”.
HasBlankRows { get; set; }Indica si se deben agregar filas en blanco. Esta propiedad solo se aplica a los tipos de formato automático de tabla dinámica que necesitan agregar filas en blanco.
Indent { get; set; }Especifica el incremento de sangría para el eje compacto y se puede usar para establecer el Diseño del informe en Forma compacta.
IsAutoFormat { get; set; }Indica si el informe de tabla dinámica se formatea automáticamente. Casilla de verificación “tabla de formato automático” que se encuentra en la opción pivotable para Excel 2003 Casilla de verificación “ajustar automáticamente el ancho de columna al actualizar” que se encuentra en la tabla dinámica Opciones: formato de diseño para Excel 2007
IsExcel2003Compatible { get; set; }Especifica si la tabla dinámica es compatible con Excel 2003 al actualizar la tabla dinámica, si es verdadero, una cadena debe tener 255 caracteres o menos, por lo que si la cadena tiene más de 255 caracteres, se truncará. si es falso, una cadena no tendrá la restricción mencionada anteriormente. El valor predeterminado es verdadero.
IsGridDropZones { get; set; }Indica si el informe de tabla dinámica muestra el diseño clásico de tabla dinámica. (permite arrastrar campos en la cuadrícula)
IsMultipleFieldFilters { get; set; }Especifica un valor booleano que indica si los campos de una tabla dinámica pueden tener varios filtros establecidos.
IsSelected { get; set; }Indica si la tabla dinámica está seleccionada.
ItemPrintTitles { get; set; }Un bit que especifica si los títulos de los elementos pivote en el eje de fila se repiten en cada página impresa para los campos pivote en formato tabular.
ManualUpdate { get; set; }Indica si el informe de tabla dinámica se recalcula solo a pedido del usuario.
MergeLabels { get; set; }Indica si las etiquetas de elemento de fila exterior, elemento de columna, subtotal, y total general del informe de tabla dinámica especificado utilizan celdas combinadas.
MissingItemsLimit { get; set; }Especifica un valor booleano que indica si los campos de una tabla dinámica pueden tener varios filtros establecidos.
Name { get; set; }Obtiene el nombre de la tabla dinámica
NullString { get; set; }Obtiene la cadena que se muestra en las celdas que contienen valores nulos cuando la propiedad DisplayNullString es verdadera. El valor predeterminado es una cadena vacía.
PageFieldOrder { get; set; }Obtiene el orden en que se agregan los campos de página al diseño del informe de tabla dinámica.
PageFields { get; }Devuelve un objeto PivotFields que actualmente se muestra como campos de página.
PageFieldWrapCount { get; set; }Obtiene el número de campos de página en cada columna o fila del informe de tabla dinámica.
PivotFilters { get; }Devuelve un objeto PivotFilterCollection.
PivotFormatConditions { get; }Obtiene las Condiciones de formato de la tabla dinámica.
PivotTableStyleName { get; set; }Obtiene y establece el nombre del estilo pivotable.
PivotTableStyleType { get; set; }Obtiene y establece el estilo de tabla dinámica integrado.
PreserveFormatting { get; set; }Indica si se conserva el formato cuando se actualiza o se vuelve a calcular la tabla dinámica.
PrintDrill { get; set; }Especifica un valor booleano que indica si se deben imprimir los indicadores de exploración. imprime los botones de expandir/contraer cuando se muestran en la tabla dinámica.
PrintTitles { get; set; }Indica si los títulos de impresión para la hoja de cálculo se establecen en base en el informe de tabla dinámica. El valor predeterminado es falso.
RefreshDataFlag { get; set; }Indica si Actualizar Datos o no.
RefreshDataOnOpeningFile { get; set; }Indica si Actualizar datos al abrir archivo.
RefreshDate { get; }Obtiene la fecha en que se actualizó por última vez la tabla dinámica.
RefreshedByWho { get; }Obtiene el nombre del usuario que actualizó por última vez la tabla dinámica
RowFields { get; }Devuelve un objeto PivotFields que actualmente se muestra como campos de fila.
RowGrand { get; set; }Indica si el informe de tabla dinámica muestra los totales generales de las filas.
RowHeaderCaption { get; set; }Obtiene el título del encabezado de fila de la tabla dinámica.
RowRange { get; }Devuelve un objeto CellArea que representa el rango que contiene el área de fila en el informe de tabla dinámica. Solo lectura.
SaveData { get; set; }Indica si los datos del informe de tabla dinámica se guardan con el libro de trabajo.
ShowDataTips { get; set; }Especifica un valor booleano que indica si se debe mostrar información sobre herramientas para las celdas de datos de la tabla dinámica.
ShowDrill { get; set; }Obtiene si se muestran los botones expandir/contraer.
ShowEmptyCol { get; set; }Especifica un valor booleano que indica si incluir columnas vacías en la tabla
ShowEmptyRow { get; set; }Especifica un valor booleano que indica si se deben incluir filas vacías en la tabla.
ShowMemberPropertyTips { get; set; }Especifica un valor booleano que indica si la información de propiedad de miembro se debe omitir de la información sobre herramientas de la tabla dinámica.
ShowPivotStyleColumnHeader { get; set; }Indica si el encabezado de la columna en la tabla dinámica debe tener el estilo aplicado.
ShowPivotStyleColumnStripes { get; set; }Indica si se aplica el formato de franja de columna.
ShowPivotStyleLastColumn { get; set; }Indica si se aplica el formato de franja de columna.
ShowPivotStyleRowHeader { get; set; }Indica si el encabezado de la fila en la tabla dinámica debe tener el estilo aplicado.
ShowPivotStyleRowStripes { get; set; }Indica si se aplica el formato de franja de fila.
ShowRowHeaderCaption { get; set; }Indica si el título de encabezado de fila se muestra en el informe de tabla dinámica Indica si Mostrar títulos de campo y filtros desplegables
ShowValuesRow { get; set; }Especifica un valor booleano que indica si mostrar valores fila. mostrar los valores fila
SubtotalHiddenPageItems { get; set; }Indica si los elementos de campo de página ocultos en el informe de tabla dinámica se incluyen en subtotales de fila y columna, totales de bloque y totales generales. El valor predeterminado es Falso.
TableRange1 { get; }Devuelve un objeto CellArea que representa el rango que contiene todo el informe de tabla dinámica, pero no incluye campos de página. Solo lectura.
TableRange2 { get; }Devuelve un objeto CellArea que representa el rango que contiene todo el informe de tabla dinámica, incluye campos de página. Solo lectura.
Tag { get; set; }Obtiene una cadena guardada con el informe de tabla dinámica.

Métodos

NombreDescripción
AddCalculatedField(string, string)Agrega un campo calculado al campo pivote y lo arrastra al área de datos.
AddCalculatedField(string, string, bool)Agrega un campo calculado al campo pivote.
AddFieldToArea(PivotFieldType, int)Agrega el campo al área específica.
AddFieldToArea(PivotFieldType, PivotField)Agrega el campo al área específica.
AddFieldToArea(PivotFieldType, string)Agrega el campo al área específica.
CalculateData()Calcula los datos de la tabla dinámica en celdas.
CalculateRange()Calcula el rango de la tabla dinámica.
ChangeDataSource(string[])Establecer los datos de origen de la tabla dinámica. Hoja1!$A$1:$C$3
ClearData()Borrar datos y formato de tabla dinámica
CopyStyle(PivotTable)Copia el estilo con nombre de otra tabla dinámica.
Dispose()Realiza tareas definidas por la aplicación asociadas con la liberación, liberación o restablecimiento de recursos no administrados.
Fields(PivotFieldType)Obtiene los campos específicos por tipo de campo.
Format(int, int, Style)Formatea la celda en el área pivotable
FormatAll(Style)Formatea todas las celdas en el área pivotable
FormatRow(int, Style)Dar formato a los datos de la fila en el área pivotable
GetCellByDisplayName(string)Obtiene el objeto Cell por el DisplayName de PivotField
GetChildren()Obtiene las tablas dinámicas secundarias que usan estos datos de tabla dinámica como origen de datos.
GetHorizontalBreaks()obtener la lista de índice de filas de tabla dinámica de saltos de página horizontales
GetSource()Obtener los datos de origen de la tabla dinámica.
Move(string)Mueve la tabla dinámica a una ubicación diferente en la hoja de trabajo.
Move(int, int)Mueve la tabla dinámica a una ubicación diferente en la hoja de trabajo.
RefreshData()Actualiza los datos y la configuración de la tabla dinámica desde su origen de datos.
RemoveField(PivotFieldType, int)Elimina un campo de un campo específico area
RemoveField(PivotFieldType, PivotField)Eliminar campo de campo específico area
RemoveField(PivotFieldType, string)Elimina un campo de un campo específico area
SetAutoGroupField(int)Establece el grupo de campo automático por la tabla dinámica.
SetAutoGroupField(PivotField)Establece el grupo de campo automático por la tabla dinámica.
SetManualGroupField(int, DateTime, DateTime, ArrayList, int)Establece el grupo de campo manual por la tabla dinámica.
SetManualGroupField(int, double, double, ArrayList, double)Establece el grupo de campo manual por la tabla dinámica.
SetManualGroupField(PivotField, DateTime, DateTime, ArrayList, int)Establece el grupo de campo manual por la tabla dinámica.
SetManualGroupField(PivotField, double, double, ArrayList, double)Establece el grupo de campo manual por la tabla dinámica.
SetUngroup(int)Conjuntos desagrupados por la tabla dinámica
SetUngroup(PivotField)Conjuntos desagrupados por la tabla dinámica
ShowInCompactForm()Diseña la tabla dinámica en formato compacto.
ShowInOutlineForm()Diseña la tabla dinámica en forma de esquema.
ShowInTabularForm()Presenta la tabla dinámica en formato tabular.
ShowReportFilterPage(PivotField)Mostrar todas las páginas de filtro de informe según PivotField, el PivotField debe estar ubicado en PageFields.
ShowReportFilterPageByIndex(int)Mostrar todas las páginas de filtro de informe según el índice de posición en PageFields
ShowReportFilterPageByName(string)Mostrar todas las páginas de filtro de informe según el nombre de PivotField, el PivotField debe estar ubicado en PageFields.

Ejemplos


[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;

//Cambiar los atributos de PivotField
PivotField rowField = pivot.RowFields[0];
rowField.DisplayName = "custom display name";

// Agregar filtro dinámico
int index = pivot.PivotFilters.Add(0, PivotFilterType.Count);
PivotFilter filter = pivot.PivotFilters[index];
filter.AutoFilter.FilterTop10(0, false, false, 2);

// Agregar condición de formato de pivote
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();

//haz tu negocio

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"

'Agregar filtro dinámico
Dim filterIndex As Int32 = pivot.PivotFilters.Add(0, PivotFilterType.Count)
Dim filter As PivotFilter = pivot.PivotFilters(filterIndex)
filter.AutoFilter.FilterTop10(0, False, False, 2)

'Agregar condición de formato de pivote
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")

Ver también