Documentação HotXLS / Referência da API

Timelines de Pivot e estados de dados de Slicer

Disponível desde a versão 2.384.98 para tabelas dinâmicas locais não OLAP com suporte por meio da fachada de pasta de trabalho XLSX

Criar e conectar uma Timeline

TimelineCache := Workbook.CreatePivotTimelineCache(Pivot, 'EventDate');
if TimelineCache = nil then
  raise Exception.Create('The Timeline cache was rejected');
TimelineView := ReportSheet.Timelines.Add(TimelineCache, 2, 7, 7, 12);
if TimelineView = nil then
  raise Exception.Create('The Timeline view was rejected');
if TimelineCache.SetDateRange(EncodeDate(2026, 1, 1),
    EncodeDate(2026, 1, 31)) < 0 then
  raise Exception.Create('The Timeline selection was rejected');

TXLSXWorkbook.CreatePivotTimelineCache(ATable: TXLSPivotTable; const AFieldName: WideString): TXLSXTimelineCache cria ou reutiliza um cache de campo de data validado e as identidades de pacote exigidas dele; a falha retorna nil antes de confirmar o estado preparado

TXLSXWorkbook.TimelineCaches expõe TXLSXTimelineCaches, com Count, Items[Index] com base zero e FindByName sem diferenciar maiúsculas; a pasta de trabalho é dona desses caches

TXLSXTimelineCache.Name identifica o cache, SourceName identifica o campo de fonte dele e IsNonOlapPivot identifica a vinculação validada com suporte; caches importados sem suporte retêm o XML original deles

TXLSXTimelineCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer conecta outra view de propriedade do mesmo PivotCache com um campo de data compatível; retorna 1 para sucesso, incluindo uma conexão existente, ou -1 para rejeição

TXLSXTimelineCache.SetDateRange(AStartDate, AEndDate: TDateTime): Integer usa endpoints de dia inteiro inclusivos e retorna 1 ou -1; os endpoints devem ser datas inteiras de 1 de janeiro de 1900 a 31 de dezembro de 9999, em ordem crescente

A pasta de trabalho com suporte usa o sistema de data 1900; criação Date1904 e endpoints fracionários de seleção são rejeitados, enquanto valores de fonte de data podem reter a hora do dia e os registros ao longo do dia final selecionado continuam elegíveis

TXLSXTimelineCache.SelectionActive, StartDate e EndDate expõem os limites ativos; ClearSelection: Integer os limpa sem alterar outros filtros e retorna 1 ou -1

As seleções se cruzam com outros Slicers, filtros manuais ou de página e predicados do chamador; estas operações não atualizam caches de fonte, não recalculam fórmulas e não reescrevem células de relatório existentes da planilha

Views de Timeline e remoção

TXLSXWorksheet.Timelines expõe a coleção TXLSXTimelines de propriedade da planilha, com Add, FindByName, Items[Index] com base zero, Count, Delete(Index) e Clear; a exclusão remove a UI mantendo o cache e a seleção compartilhados dela

TXLSXTimelines.Add(ACache: TXLSXTimelineCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXTimeline aceita um cache com suporte próprio e um retângulo de planilha ordenado com base um, retornando uma view própria ou nil

TXLSXTimeline.Name é somente leitura, Cache identifica o cache compartilhado dele, e Caption muda o rótulo de exibição; Level aceita 0 para anos, 1 para trimestres, 2 para meses ou 3 para dias

TXLSXTimeline.SetBounds altera o retângulo com base um exposto por FromRow, FromCol, ToRow e ToCol; geometria inválida, vinculações sem suporte ou geometria de desenho agrupada disparam exceção antes da mutação

TXLSXDrawingObject.Timeline retorna a view associada para o tipo de desenho xlsxDrawingTimeline; transformações diretas de desenho sem suporte permanecem com guarda

Status := Workbook.RemoveTimelineCache(TimelineCache,
  xlsxSlicerPreserveCurrentSelection);

TXLSXWorkbook.RemoveTimelineCache(ACache: TXLSXTimelineCache; AMode: TXLSXSlicerRemovalMode): Integer prepara filtros conectados, UI, nomes e limpeza de pacote juntos e retorna 1 ou -1

xlsxSlicerClearSelection remove a seleção; xlsxSlicerPreserveCurrentSelection retém uma seleção ativa como uma comparação de data de dia inteiro apenas quando o campo de data já está em um eixo de linha ou coluna em toda view conectada

Um campo de data não usado ou apenas de página rejeita atomicamente a remoção com preservação de seleção; use a remoção explícita com limpeza de seleção quando esse comportamento for o pretendido

Filtros importados só se normalizam depois que toda conexão, namespace herdado e procedência exata de filtro próprio valida; atributos ou filhos opacos do mesmo campo, namespaces estrangeiros, vinculações externas e grafos de múltipla UI sem suporte retêm o XML deles e rejeitam mutação

A materialização nativa prepara a seleção atual de Timeline com metadados e células do relatório, removendo apenas a assinatura exata do filtro próprio salvo; restrições arbitrárias de callback não têm representação XML nativa e não podem ser reproduzidas pela atualização do Excel

O salvamento OOXML preserva tipos de relação nativos, caminhos originais e extensões sem relação; o salvamento Strict somente de cache é rejeitado, a conversão ODS relata perda de Timeline e o subconjunto XLSB de valores e estilos rejeita Timelines

Atualização explícita de estado de dados de Slicer nativo

function TXLSXSlicerCache.RefreshItemDataStates: Integer; overload;
function TXLSXSlicerCache.RefreshItemDataStates(
  AMaxEvaluationSteps: Integer; ACancelFlag: PBoolean = nil): Integer; overload;

A operação avalia e prepara o vetor nativo completo de sem dados, depois confirma sob uma guarda de gravação da pasta de trabalho; o sucesso retorna 1, e a rejeição retorna -1 sem alterar sinalizadores serializados de itens nem seleções

Ela ignora a própria seleção deste Slicer enquanto cruza outras seleções de Slicer e de Timeline, filtros manuais ou de página, filtros de agregação com suporte e predicados do chamador; a disponibilidade é a união pelas views conectadas com suporte

Membros históricos selecionados sem registros elegíveis recebem o sinalizador nativo de sem dados mantendo a seleção deles; IDs estáveis de cache, a ordem de rede original de itens e o XML sem relação permanecem intactos

O limite cumulativo padrão de etapas é 1000000; zero significa etapas ilimitadas, um valor negativo é rejeitado, e FormulaArrayMemoryLimit limita cumulativamente a preparação de metadados mais todas as previews de views conectadas

Cancelamento, exceções ou reentrada de callback, views congeladas, vinculações sem suporte, orçamentos esgotados ou estado de avaliação alterado são rejeitados antes de confirmar sinalizadores; mudanças independentes de modelo comum feitas por callbacks do chamador permanecem sendo mudanças do chamador e causam rejeição da atualização

TXLSXSlicerCache.CrossFilter lê e grava a configuração nativa tabular de filtro cruzado sob a guarda de mutação; showItemsWithDataAtTop habilita a ordenação nativa de dados primeiro sem reescrever a ordem de rede de itens

ItemHasData continua sendo uma consulta somente leitura; salvar não chama o avaliador nem atualiza sinalizadores de sem dados implicitamente, então chame RefreshItemDataStates explicitamente antes de salvar quando o estado nativo de UI precisar ser atualizado

Semântica avançada de filtro de data

TXLSPivotFilter.UseWholeDay solicita comparações de data de dia inteiro para filtros de data com suporte; seleções preservadas geradas por Timeline o usam, enquanto filtros de data comuns retêm o comportamento anterior sensível a hora

Consulte a saída de Pivot nativa e a disponibilidade somente leitura de Slicer e o ciclo de vida de cache local e de Slicer para os contratos de atualização e de propriedade ao redor