HotXLS ドキュメント / API リファレンス

ピボット タイムラインとスライサー データ状態

バージョン 2.384.98 以降、XLSX ワークブック ファサードを通じて、対応するローカル非 OLAP ピボットテーブルで利用可能です

タイムラインの作成と接続

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 は、検証済み日付フィールド キャッシュと必要なパッケージ識別子を作成または再利用します。失敗すると、ステージング状態をコミットする前に nil を返します

TXLSXWorkbook.TimelineCaches は TXLSXTimelineCaches を公開し、Count、ゼロ始まりの Items[Index]、大文字小文字を区別しない FindByName を備えます。これらのキャッシュはワークブックが所有します

TXLSXTimelineCache.Name がキャッシュを、SourceName がソース フィールドを識別し、IsNonOlapPivot が検証済みの対応バインディングを識別します。未対応のインポート済みキャッシュは元の XML を保持します

TXLSXTimelineCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer は、互換する日付フィールドを持つ同じ PivotCache の別の所有ビューを接続します。既存の接続も含めて成功で 1、拒否で -1 を返します

TXLSXTimelineCache.SetDateRange(AStartDate, AEndDate: TDateTime): Integer は両端を含む終日エンドポイントを使い、1 か -1 を返します。エンドポイントは、1900 年 1 月 1 日から 9999 年 12 月 31 日までの整数日付で、昇順でなければなりません

対応するワークブックは 1900 日付システムを使います。Date1904 でのオーサリングや小数の選択エンドポイントは拒否されますが、ソースの日付値は時刻を保持でき、選択された終端日を通るレコードは引き続き対象です

TXLSXTimelineCache.SelectionActive、StartDate、EndDate がアクティブな境界を公開します。ClearSelection: Integer は他のフィルターを変えずにそれらをクリアし、1 か -1 を返します

選択は他のスライサー、手動・ページ フィルター、呼び出し側述語と交差します。これらの操作は、ソース キャッシュの更新、数式の再計算、既存ワークシート レポート セルの書き換えを行いません

タイムライン ビューと削除

TXLSXWorksheet.Timelines はワークシート所有の TXLSXTimelines コレクションを公開し、Add、FindByName、ゼロ始まりの Items[Index]、Count、Delete(Index)、Clear を備えます。削除は UI を取り除きつつ、共有キャッシュと選択を保持します

TXLSXTimelines.Add(ACache: TXLSXTimelineCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXTimeline は、所有された対応キャッシュと順序付き 1 始まりワークシート矩形を受け取り、所有ビューか nil を返します

TXLSXTimeline.Name は読み取り専用、Cache が共有キャッシュを識別し、Caption が表示ラベルを変えます。Level は年で 0、四半期で 1、月で 2、日で 3 を受け付けます

TXLSXTimeline.SetBounds は FromRow、FromCol、ToRow、ToCol が公開する 1 始まり矩形を変更します。無効なジオメトリ、未対応のバインディング、グループ化された描画ジオメトリは変更前に例外を発生させます

TXLSXDrawingObject.Timeline は、描画種別 xlsxDrawingTimeline の関連ビューを返します。未対応の描画変換は引き続きガードされます

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

TXLSXWorkbook.RemoveTimelineCache(ACache: TXLSXTimelineCache; AMode: TXLSXSlicerRemovalMode): Integer は、接続フィルター、UI、名前、パッケージ クリーンアップをまとめてステージングし、1 か -1 を返します

xlsxSlicerClearSelection は選択を取り除きます。xlsxSlicerPreserveCurrentSelection は、日付フィールドがすべての接続ビューの行軸か列軸に既にある場合に限り、アクティブな選択を終日の日付比較として保持します

未使用またはページ専用の日付フィールドは、選択保持の削除をアトミックに拒否します。その挙動が意図通りなら、明示的な選択クリア削除を使ってください

インポート済みフィルターは、すべての接続、継承された名前空間、正確な所有フィルター由来が検証されて初めて正規化されます。不透明な同一フィールド属性や子、外部名前空間、外部バインディング、未対応の複数 UI グラフは XML を保持し、変更を拒否します

ネイティブ マテリアライズは、現在のタイムライン選択をレポート メタデータやセルと一緒にステージングし、保存済みの所有フィルター署名だけを正確に取り除きます。任意のコールバック制限にはネイティブ XML 表現がなく、Excel の更新では再現できません

OOXML 保存はネイティブ リレーションシップ型、元のパス、無関係な拡張を保持します。Strict のキャッシュ専用保存は拒否され、ODS 変換はタイムラインの損失を報告し、XLSB の値とスタイル サブセットはタイムラインを拒否します

明示的なネイティブ スライサー データ状態更新

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

この操作は完全なネイティブ データなしベクトルを評価してステージングし、その後ワークブックの書き込みガードの下でコミットします。成功で 1、拒否は直列化アイテム フラグや選択を変えずに -1 を返します

この操作はこのスライサー自身の選択を無視しつつ、他のスライサーとタイムラインの選択、手動・ページ フィルター、対応する集計フィルター、呼び出し側述語と交差します。可用性は対応する接続ビュー全体の和集合です

対象レコードのない選択済み履歴メンバーは、選択を保持したままネイティブ データなしフラグを受け取ります。安定したキャッシュ ID、元のアイテム シリアライズ順序、無関係な XML は無傷です

デフォルトの累積ステップ上限は 1000000 です。ゼロは無制限、負の値は拒否され、FormulaArrayMemoryLimit がメタデータ ステージングと全接続ビュー プレビューを累積で制限します

キャンセル、コールバック例外や再入、凍結ビュー、未対応バインディング、予算の枯渇、評価状態の変化は、フラグのコミット前に拒否されます。呼び出し側コールバックが加えた独立した共通モデル変更は呼び出し側の変更のままで、更新の拒否原因になります

TXLSXSlicerCache.CrossFilter は、変更ガードの下でネイティブ表形式クロスフィルター設定を読み書きします。showItemsWithDataAtTop は、アイテムのシリアライズ順序を書き換えずにネイティブのデータ先頭順序を有効化します

ItemHasData は読み取り専用クエリのままです。保存がエバリュエーターを呼び出したり、データなしフラグを暗黙に更新したりすることはありません。ネイティブ UI 状態を更新する必要があるときは、保存前に明示的に RefreshItemDataStates を呼び出してください

高度な日付フィルター セマンティクス

TXLSPivotFilter.UseWholeDay は、対応する日付フィルターに対する終日の日付比較を要求します。タイムライン生成の保持選択はこれを使い、通常の日付フィルターは以前の時刻依存の動作を保ちます

周辺の更新と所有の契約については、ネイティブ ピボット出力と読み取り専用スライサー可用性 と ローカル キャッシュとスライサーのライフサイクル を参照してください