これらの公開メンバーは、I/O の検査、シリアライザーの実装、ワークブック間の計算調整を行う統合を支援します。ワークブック メンバーは lxHandleX で、ワークスペース グラフは lxDepGraph で宣言されています
通常のアプリケーションは、まずセル書式、SaveAs、Recalculate、外部ワークブックのワークスペース API を使ってください。スタイル プール登録とグラフ スケジューリングは、ライブラリのシリアライザーや計算エンジンと同じインデックスとライフタイム規約を要求します
TXLSXWorkbook.OnReadCell は、XLSX 解析中にマテリアライズされた各セルについて、シート インデックス、行、列、保存値、数式を受け取ります。書き込み可能な Cancel フラグ付きです。TXLSXWorkbook.OnWriteCell は、セルの直列化前に書き込み可能な出力値と Skip、Cancel フラグを受け取ります。ホストは、ワークブック API を直接ストリーム API に置き換えなくても出力を変換・省略できます
両方のコールバックは 1 始まりのワークシート・セル座標を使い、宣言型は TXLSXCellReadEvent と TXLSXCellWriteEvent です。コールバックはアクティブな I/O 操作の中で実行されるため、コールバックから同一ワークブック上の別操作を開始しないでください
TXLSXWorkbook.RecoveryMode のデフォルトは False で、対応するワークシート XML 解析失敗を警告診断に変えつつオープンを続行できます。ワークシート内容が部分的な復元に留まることもあります。読めない ZIP パッケージからの復元は保証しないため、保存前に診断と復元データを確認してください
TXLSXWorkbook.FireProgress は、フェーズ、状態、現在数、合計数を割り当てられた進行状況ハンドラーへ送ります。旧式ハンドラーは作業通知を受け取り、拡張ハンドラーはすべての状態を受け取ります。拡張ハンドラーはキャンセルを要求できますが、書き込み終了通知では既にコミット済みの出力を取り消せません
TXLSXWorkbook.AddDiagnostic はワークブック所有の診断を追加して返します。指定されたコード、重大度、操作、メッセージ、ネイティブ コード、シート コンテキスト、パッケージ パーツ名を記録し、例外が渡されれば例外クラス名をコピーし、OnDiagnostic を呼び出します。例外の所有は取らず、再スローもしません
function TXLSXWorkbook.AddDiagnostic(ACode: Integer; ASeverity: TXLSDiagnosticSeverity; AOperation: TXLSDiagnosticOperation; const AMessage: WideString; ANativeCode, ASheetIndex: Integer; const ASheetName, APartName: WideString; AException: Exception): TXLSDiagnostic;
TXLSXWorkbook.CSVEmitFormulas のデフォルトは False で、数式セルの CSV 出力を数式結果から数式テキストへ切り替えます。結果出力は数式評価を試み、評価が失敗すると保存済みセル テキストか値へフォールバックします。TXLSXWorkbook.CSVQuoteAllStrings のデフォルトも False で、テキスト フィールドに引用符を強制します。数値、日付、Boolean、Null、Empty は通常の引用規則を保ちます
TXLSXWorkbook.LastSaveUsedStreaming は最近の準備済み保存がワークシート ストリーミングを使ったかを報告します。TXLSXWorkbook.LastSavePeakRowXmlChars は最大のバッファ済み行 XML 断片を、TXLSXWorkbook.LastSaveBufferedWorksheetXmlChars は合計のバッファ済みワークシート XML を、TXLSXWorkbook.LastSavePeakAuxiliaryXmlChars は追跡された最大の補助 XML 断片を報告します。これらはプロセス メモリ全体の計測ではなくシリアライザー計測による文字数で、ODS 出力は XLSX ワークシート ストリーミング パスを使いません
TXLSXWorkbook.TryCopyPreservedPart は、対象となる保持ソース パーツを、圧縮表現ごと呼び出し側指定の宛先 TZipArchive へコピーしようとします。コピーできれば True、通常の直列化が必要なら False を返します。ソースはファイル バックド オープンから利用可能なままである必要があり、欠落や明示的に廃棄されたパーツはコピーできません
宛先アーカイブの所有は呼び出し側にあり、通常どおり完成させる必要があります。圧縮コピーのロールバック失敗では例外が発生することがあり、このヘルパーは完全なワークブック パッケージを組み立てず、リレーションシップやコンテンツ タイプも更新しません
TXLSXWorkbook.SaveAsEncryptedAgile はファイル名と空でないパスワードを受け取り、XLSX パッケージをメモリ上で直列化し、Agile 暗号化コンテナを書き込みます。成功で 1、報告された失敗で -1 を返します。省略可能な VerifyEncryptedSave は書き込み後に再オープン チェックを行います。このメソッドには、暗号化前パッケージとその直列化バイト列の両方のメモリが必要です
TXLSXWorkbook.VerifyEncryptedFile は指定されたファイルとパスワードを一時ワークブックで開き、そのオープンが成功したときだけ True を返します。例外は False に変換されます。これは可読性のチェックであって、全セルを現在のワークブックと比較するものではなく、暗号化されていない XLSX 入力に対しては通常の OpenEncrypted 動作に従います
TXLSXWorkbook.DocSecurity は拡張ドキュメント プロパティのビット フィールドを保持します。1 はパスワード保護、2 は読み取り専用推奨、4 は強制読み取り専用、8 は注釈ロックです。これらのメタデータ ビットが、それ自体で暗号化やアクセス制限を適用することはありません
TXLSXWorkbook.DocPropsTouched は、ドキュメント プロパティ ライターが追跡プロパティの設定済み判定に使う読み取り専用フラグです。Title などの追跡プロパティ セッターが設定し、直接代入された拡張メタデータは自動的には設定しません
TXLSXWorkbook.WorkbookProtectHash は、読み込みまたは生成された旧式ワークブック保護ハッシュを公開します。通常は 4 桁の 16 進数、パスワード ハッシュがなければ空文字列です。保護を変えるには、この読み取り専用値を代入せずワークブック保護メソッドを使ってください。ワークブック構造の保護は、暗号化ファイル ストレージとは別に扱ってください
TXLSXWorkbook.ThemeMajorFont と TXLSXWorkbook.ThemeMinorFont は、テーマから読み込まれた見出しと本文の書体を公開し、デフォルト Office テーマ生成時には名前を上書きします。そのまま保持されたテーマは、これらのフォント名設定より優先します
TXLSXWorkbook.DefaultTableStyleName と TXLSXWorkbook.DefaultPivotStyleName は、新しく挿入する Excel テーブルとピボットテーブル用にスタイル テーブルへ保存されるデフォルト名の往復を担います。代入しても既存オブジェクトすべてが直接再フォーマットされることはありません
TXLSXWorkbook.ResolveTableStyle は名前でワークブック所有のカスタム スタイルを返し、それ以外は対応する組み込み TableStyleLight1〜TableStyleLight21、TableStyleMedium1〜TableStyleMedium28、TableStyleDark1〜TableStyleDark11 を解決してキャッシュし、未知の名前には nil を返します。返されたスタイルを解放しないでください
TXLSXWorkbook.FastStyleAppend のデフォルトは False で、一括作成時にスタイル プールの重複除去スキャンと通常の複合スタイル登録をスキップできます。多数の異なるスタイルを作る場合、より大きなスタイル テーブルと引き換えに挿入が速くなります
function TXLSXWorkbook.RegisterCompositeXf( AFont, AFill, ABorder, ANumFmt, AAlign, AProt: Integer): Integer; overload; function TXLSXWorkbook.RegisterCompositeXf( AFont, AFill, ABorder, ANumFmt, AAlign, AProt, ABuiltinNumFmt: Integer): Integer; overload; function TXLSXWorkbook.RegisterLinkedCompositeXf( AFont, AFill, ABorder, ANumFmt, AAlign, AProt, AParentXfId: Integer; ALinkedParts: TXLSXFormatParts): Integer;
TXLSXWorkbook.RegisterCompositeXf は、フォント、塗りつぶし、罫線、表示形式、配置、保護の各インデックスを組み合わせて登録し、複合プールのスロットではなく絶対 cellXfs インデックスを返します。7 引数オーバーロードは組み込み表示形式 ID を受け付け、指定されたカスタム形式インデックスより優先します。ゼロは上書きなしを意味します
TXLSXWorkbook.RegisterLinkedCompositeXf はさらに、親スタイル XF ID とその親にリンクされた形式パーツを記録し、親やリンクの組み合わせが違えば別エントリを保持します。絶対 cellXfs インデックスを返す点も同じです
TXLSXWorkbook.CompositeXfBase は、現在の単一次元スタイル プールから計算した最初の絶対複合インデックスを返し、TXLSXWorkbook.CompositeXfCount は登録済み複合エントリを数えます。GetCompositeXf が使うプール スロットは絶対インデックスから基準を引いたもので、プールの成長で基準は変わり得ます。これらの値は現在の直列化状態に属します
TXLSXWorkbook.RegisterCondDxf は借用の TXLSDxfStyle 参照を登録し、ゼロ始まりの差分スタイル ID を返します。同一オブジェクト参照には既存 ID を再利用します。直列化が使っている間、オブジェクトを生存させてください
TXLSXWorkbook.ResetCondDxfs は借用スタイルを解放せずにアクティブ レジストリ数をクリアし、TXLSXWorkbook.CondDxfCount がその数を報告します。保存準備はこのレジストリを組み立て直すため、書き込まれるパッケージとは独立にこれらの ID を永続化しないでください
TXLSXWorkbook.PivotCaches は、ワークシートのピボットテーブルが共有するワークブック所有の TXLSPivotCaches コレクションです。AddPivotTable は一致するソース キャッシュを再利用するか作成し、RefreshPivotCache は指定キャッシュを、対応するメンバー識別子を保持したまま更新します
TXLSXWorkbook.RecalcThreads のデフォルトはゼロで、0 か 1 は直列再計算を使い、より大きい値は独立した数式フロンティアのワーカー評価を有効化します。動的配列を含むワークブックはこの設定に関係なく直列パスを使い、what-if データ テーブル ノードは直列のまま、ワーカーが使うユーザー関数ハンドラーはスレッドセーフでなければなりません
TXLSXWorkbook.SolveCycleIteratively は、反復計算が有効なときに通常 Recalculate が呼ぶ高度なエントリ ポイントです。そのワークブックの現在の依存グラフからノード インデックスを受け取り、指定された TList の循環ノードを評価します。ワークスペース グラフや別ワークブックのインデックスは交換できません
ソルバーは IterateCount と IterateDelta を使い、反復上限に達しても最終値を保持し、収束を保証せずに lxOk を返します。動的配列の循環メンバーは lxErrorCircumRef を返し、シグネチャの CycleCount 引数がグラフ ノード上の循環分類を置き換えることはありません
TXLSWorkspaceDepGraph は、呼び出し側指定のワークブック識別子とシート識別子にまたがる数式依存を、ワークブックを開かず数式も評価せずに保持します。現在の数式と解決済み参照からグラフを構築し、それらの参照を無効化する構造変更や数式変更の後には組み立て直してください
function TXLSWorkspaceDepGraph.AddNode( const AWorkbookIdentity, ASheetName: WideString; ASheetIndex, ARow, ACol, AOutRow2, AOutCol2: Integer; AVolatile: Boolean; AReferences: TXLSWorkspaceDepReferenceList; ARefUnstable: Boolean = False): Integer; procedure TXLSWorkspaceDepGraph.DirtyTopoOrder(AOrder: TList; out ACycleNodeCount, ABlockedNodeCount: Integer);
TXLSWorkspaceDepGraph.AddNode は数式ノードを追加してゼロ始まりノード インデックスを返し、指定された参照をコピーします。そのリストの所有は取りません。シート インデックスは 1 始まりで、両端を含む出力矩形の右下隅を含む行・列座標は、ゼロ始まりの計算機座標です
TXLSWorkspaceDepReferenceList.Add は解決済みのセル、範囲、定義名参照レコードを追加し、TXLSWorkspaceDepReferenceList.Items はゼロ始まりインデックスでそれらを読み、TXLSWorkspaceDepReferenceList.Clear は再利用のためにリストをリセットします。この入力リストの所有は呼び出し側にあり、AddNode がエントリをコピーした後でクリアや解放が可能です
TXLSWorkspaceDepGraph.BuildEdges は、保存されたセル・範囲参照を数式出力矩形に対して解決します。LookupScan を付けた参照はダーティを伝搬しますが、評価順序を課したり循環検出に参加したりしません
TXLSWorkspaceDepGraph.NodeIndexOf は、ワークブック、シート、行、列をゼロ始まりノード インデックスか、存在しなければ -1 へ解決します。シート名があればそれを使い、宣言されたシート インデックスをフォールバックにします
TXLSWorkspaceDepGraph.FindDependentsOfDefinedName は、渡された nil でない TList をクリアし、指定ワークブックとスコープで名前付きシンボルを直接参照するノード インデックスを埋めます。負のスコープ インデックスは全スコープに一致します。エントリは Pointer(NativeInt(NodeIndex)) としてエンコードされるため、nil のリスト エントリがノード 0 を表せます
TXLSWorkspaceDepGraph.BeginDirtyGeneration は新しい世代を開始し、アクティブなダーティ ノード数と循環ブロック フラグをリセットし、以前のダーティ スタンプを無効化します。新しい再計算パス用にノードをマークする前に呼び出してください
TXLSWorkspaceDepGraph.MarkAllDirty は現在の世代の全ノードをマークします。TXLSWorkspaceDepGraph.MarkWorkbookDirty は指定ワークブックに属すノードとそれを参照するノードを起点に依存先へ伝搬し、TXLSWorkspaceDepGraph.MarkVolatileDirty は揮発ノードを、TXLSWorkspaceDepGraph.MarkCyclesDirty は検出された循環コンポーネントを起点にし、それぞれのダーティも伝搬します
TXLSWorkspaceDepGraph.IsNodeDirty は、有効なノードが現在の世代スタンプを持つかを報告し、無効なインデックスには False を返します。TXLSWorkspaceDepGraph.DirtyGeneration がそのスタンプを公開し、TXLSWorkspaceDepGraph.DirtyNodeCount がアクティブ世代でマークされたノードを数えます
TXLSWorkspaceDepGraph.DirtyTopoOrder は nil でない呼び出し側所有の TList を要求し、それをクリアして、ダーティ ノード インデックスを依存順に埋めます。ダーティな循環ノードとそれらにブロックされたノードは除外です。2 つの出力カウントが循環メンバーとブロックされた下流ノードを区別し、リスト エントリは同じポインタ エンコードのゼロ始まりインデックス規約を使います
TXLSWorkspaceDepGraph.HasRefUnstable は、参照不安定フラグ付きで追加されたノードがあるかを報告します。評価時に数式参照が変わり得る場合、呼び出し側は古い静的スケジュールに頼らずに済みます。グラフ自体がそれらの変化する参照を解決することはありません
TXLSWorkspaceDepGraph.NodeCount は数式ノードを数え、TXLSWorkspaceDepGraph.ReferenceCount はコピーされた参照を数え、TXLSWorkspaceDepGraph.EdgeCount は構築済み依存エッジを報告します。エッジ統計を使う前に BuildEdges を呼び出してください
TXLSWorkspaceDepGraph.WorkbookCount はインターンされたワークブック識別子を数えます。参照によって導入された識別子も含まれます。TXLSWorkspaceDepGraph.WorkbookIdentities はゼロ始まりインデックスで列挙します。これらの識別子文字列はグラフ キーであって、外部ファイルが読み込まれた証拠ではありません
TXLSWorkspaceDepGraph.ComponentCount は、コンポーネント構築後の強連結成分の数を報告します。構築は MarkCyclesDirty、DirtyTopoOrder、コンポーネント アクセスが引き起こします。各 Components レコードは NodeStart、NodeCount、IsCycle を供給します
TXLSWorkspaceDepGraph.ComponentNodes は、それらのコンポーネント用に平坦化されたゼロ始まりノード インデックス配列を公開し、コンポーネントの NodeStart から NodeStart + NodeCount - 1 までをインデックス化します。カウントとインデックス付きレコードは現在のグラフを記述するもので、グラフ再構築後には再取得してください
通常のワークブック エントリ ポイントについては、XLSX ファサードの追加メンバー と XLSX ファサードの概要 に進んでください