Como trabalhar com Tabelas Dinâmicas
Este tópico aborda a classe Open XML SDK PivotTableDefinition e como se relaciona com o esquema Open XML File Format SpreadsheetML. Para obter mais informações sobre a estrutura geral das partes e elementos que compõem um documento de Folha de CálculoML, veja Estrutura de um documento de Folha de CálculoML.
Tabela Dinâmica em Folha de CálculoML
As seguintes informações da especificação ISO/IEC 29500 introduzem o PivotTableDefinition
elemento (<pivotTableDefinition/>
).
As tabelas dinâmicas apresentam vistas agregadas de dados facilmente e num esquema compreensível. Centenas ou milhares de partes de informações subjacentes podem ser agregadas em linhas & eixos de coluna, revelando os significados subjacentes aos dados. Os relatórios de tabela dinâmica são utilizados para organizar e resumir os seus dados de formas diferentes. A criação de um relatório de tabela dinâmica consiste em mover partes de informações para ver como se encaixam. Em alguns gestos, as linhas e colunas dinâmicas podem ser movidas para diferentes disposições e esquemas.
Um objeto de tabela dinâmica tem uma área do eixo de linha, uma área do eixo de colunas, uma área de valores e uma área de filtro de relatório. Além disso, as Tabelas Dinâmicas têm um painel de lista de campos correspondente que apresenta todos os campos de dados que podem ser colocados numa das áreas da Tabela Dinâmica.
O livro aponta para (e detém a longevidade de) a parte pivotCacheDefinition, que por sua vez aponta e detém a parte pivotCacheRecords. O livro também aponta e é proprietário da parte da folha, que, por sua vez, aponta e detém uma definição de peça de tabela dinâmica, quando uma tabela dinâmica está na folha (pode haver várias tabelas dinâmicas numa folha). A parte da tabela dinâmica aponta para a pivotCacheDefinition adequada que está a utilizar. Uma vez que várias tabelas dinâmicas podem utilizar a mesma cache, a parte da tabela dinâmica não é proprietária da longevidade da pivotCacheDefinition.
A parte da tabela dinâmica descreve as particularidades do esquema da tabela dinâmica na folha. Indica que campos estão no eixo da linha, o eixo de colunas, o filtro de relatório e as áreas de valores da Tabela Dinâmica. Também indica informações de formatação sobre a tabela dinâmica. Se a formatação condicional tiver sido aplicada à tabela dinâmica, isso também é expresso na parte da tabela dinâmica.
A definição da cache dinâmica contém as definições de todos os campos na tabela dinâmica. Se criar uma tabela dinâmica com base numa tabela normal, cada coluna na tabela torna-se um campo da definição da cache dinâmica. A cache dinâmica contém as definições de campo e informações sobre o tipo de conteúdo encontrado nesse campo. Também mantém uma referência aos dados de origem na marcação da cache para que a cache dinâmica possa ser atualizada juntamente com os dados em cache na parte dos registos da cache dinâmica.
Os dados apresentados na Tabela Dinâmica são armazenados em duas localizações. A parte dos registos da cache dinâmica mantém os dados reais da tabela dinâmica. As células da tabela na folha de cálculo também armazenam uma versão dos dados em cache, mas que é apenas para fins de apresentação. A parte dos registos da cache dinâmica armazena dados de uma de duas formas. Os valores exclusivos da área de dados da Tabela Dinâmica são colocados em cache inline. Os itens repetidos que normalmente encontra na linha e na coluna são referenciados. Estes dados partilhados são armazenados na definição da cache dinâmica. Cada registo na parte do registo de cache dinâmica consiste em valores N em que N é igual ao número de campos definidos na definição da cache dinâmica.
O passo final é criar a própria Tabela Dinâmica. A parte de definição da tabela dinâmica contém as informações sobre que campo está presente em que local da Tabela Dinâmica. Pode colocar um campo em quatro áreas: linha, coluna, dados ou filtro. Os campos são escolhidos a partir dos campos em cache na definição da cache dinâmica.
Para criar uma tabela dinâmica pronta a utilizar quando o livro for aberto, também tem de criar a marcação para as células da tabela. A Tabela Dinâmica é apresentada nas células de uma folha de cálculo e, por conseguinte, também tem de as construir. Também pode fazer com que o utilizador atualize as células da tabela dinâmica ao abrir o documento.
A tabela seguinte lista as classes comuns do SDK Open XML utilizadas ao trabalhar com a PivotTableDefinition
classe .
Elemento SpreadsheetML | Abrir Classe SDK XML |
---|---|
<pivotField/> |
PivotField |
<pivotCacheDefinition/> |
PivotCacheDefinition |
<pivotCacheRecords/> |
PivotCacheRecords |
Classe Open XML SDK PivotTableDefinition
A classe Open XML SDK PivotTableDefinition
representa o elemento de definição de tabela dinâmica (<pivotTableDefinition/>
) definido no esquema Open XML File Format para documentos de Folha de CálculoML. Utilize a PivotTableDefinition
classe para manipular elementos individuais <pivotTableDefinition/>
num documento de Folha de CálculoML.
A função main da definição de Tabela Dinâmica é armazenar informações sobre que campo é apresentado em que eixo da Tabela Dinâmica e por que ordem. Existem muitas outras definições que podem ser adicionadas à definição de Tabela Dinâmica, mas o seguinte explica as noções básicas.
O elemento raiz atribui um nome à Tabela Dinâmica para que possa ser utilizada como uma origem de dados. O elemento raiz também referencia a cache dinâmica com o ID adicionado à peça do livro e define a etiqueta legenda a apresentar acima da área de dados da tabela dinâmica. Todos estes elementos são necessários.
Os três main partes do PivotTableDefinition
são: a localização da tabela, as informações de apresentação dos campos em cache e as informações de posicionamento dos campos em cache. Para obter mais informações sobre estes e outros elementos adicionais que compõem o PivotTableDefinition
, consulte a especificação ISO/IEC 29500.
Classe de Campo Dinâmico
O PivotTableDefinition
elemento contém os PivotField
elementos (<pivotField/>
). As seguintes informações da especificação ISO/IEC 29500 introduzem o PivotField
elemento (<pivotField/>
).
Representa um único campo na Tabela Dinâmica. Este elemento contém informações sobre o campo, incluindo a coleção de itens no campo.
Em primeiro lugar, defina a coleção de campos que aparecem na Tabela Dinâmica com o pivotFields
elemento . Cada campo serve como uma cache para os dados desse campo na origem de dados. Não precisa de definir a cache. Em vez disso, pode definir o item
elemento igual a default
e fazer com que o utilizador atualize a tabela quando abrir o documento. O showAll
atributo é utilizado para ocultar determinados elementos para essa dimensão de dados.
Depois de definir os campos que fazem parte da tabela, os campos são aplicados às quatro áreas da tabela dinâmica.
Classe de Definição da Cache Dinâmica
As seguintes informações da especificação ISO/IEC 29500 introduzem o PivotCacheDefinition
elemento (<pivotCacheDefinition/>
).
A parte pivotCacheDefinition define cada campo na parte pivotCacheRecords, incluindo o nome do campo e informações sobre os dados contidos no campo. A parte pivotCacheDefinition também define itens dinâmicos que são partilhados entre as partes tabela dinâmica e pivotRecords.
A cache dinâmica define a origem dos dados na Tabela Dinâmica, que permite que sejam atualizados e define a lista de campos nesses dados. Tenha em atenção que a cache define todos os campos disponíveis para a tabela dinâmica e não os que são realmente utilizados. A definição de Tabela Dinâmica define quais dos campos disponíveis são utilizados por uma tabela dinâmica específica.
A definição da origem de dados referencia os dados apresentados na Tabela Dinâmica. A Tabela Dinâmica também mantém os dados na parte cache-records para permitir que a tabela seja atualizável quando a ligação de dados não está disponível. Não pode depender das células da tabela dinâmica para armazenar os dados, uma vez que os dados nestas células são transitórios por natureza, mas mudam quando dinamizar a tabela. Existem vários tipos de origens de dados, por exemplo: folhas de cálculo, base de dados, cubo OLAP e outras tabelas dinâmicas.
A última parte da definição de cache define os campos da origem de dados com o cacheField
elemento . O cacheField
elemento é utilizado para duas finalidades: define o tipo de dados e a formatação do campo e é utilizado como uma cache para cadeias partilhadas. Os valores dinâmicos são armazenados na parte de registos da cache dinâmica. Quando uma cadeia periódica é utilizada como um valor, o registo de cache utiliza uma referência na cacheField
coleção de itens partilhados.
Classe de Registos da Cache Dinâmica
As seguintes informações da especificação ISO/IEC 29500 introduzem o PivotCacheRecords
elemento (<pivotCacheRecords/>
).
A parte pivotCacheRecords contém os dados subjacentes a agregar. É uma cache dos dados de origem.
A parte dos registos de cache pode armazenar qualquer número de registos em cache. Cada registo tem o mesmo número de valores definido como existem campos na definição de cache. Cada registo é definido com o r
elemento . Este registo contém itens de valor como elementos subordinados. Pode fornecer determinados valores escritos, como Numérico, Booleano ou Data/Hora, ou pode referenciar os itens partilhados.