ライブラリの追加 API メンバー
このページでは、主要なワークブック、ワークシート、描画、インポート、診断、ビューアーの各 API をサポートしながら、個別のタスク指向ガイドを必要としないパブリック型のリファレンスを補完します
フィルターと条件付き書式
TXLSAutofilter | Add、 AddAutofilterData、 AssignFrom、 Clear、および ParseAutofilterData はフィルター定義を編集またはインポートし、 SetRangeBounds(ARow1, ACol1, ARow2, ACol2) は、読み込まれた条件やドロップダウン シェイプを取り除かずに 1 始まりの包含境界を復元します。正でない境界、逆順の境界、読み込まれたフィールド数と異なる列数は無視されます。 Defined、 FirstRow、 FirstCol、 LastCol、 LastRow、および FieldCount はアクティブな範囲とフィルター対象の列数を公開します |
TXLSAutofilterItem | Shape は項目に関連付けられたフィルター ボタンの図形を公開します。読み込まれたフィルター条件は、検査やラウンドトリップ編集のために TXLSAutofilterDOPER オペランド レコードとして利用できます。 DataType がオペランドの形式を選択し、 grbitSgn が符号とフラグ ビットを保持します |
TXLSDataBarSpec | AxisColor、 AxisIsThemeColor、 AxisThemeColorId、 AxisThemeColorTint、および ClearAxisThemeColor は軸を制御し、 Direction、 GradientFill、 NegativeBarBorderColorSameAsPositive、 NegativeBarColor、 NegativeBarColorSameAsPositive、および NegativeBorderColor はバーの外観を制御し、 IsIndexedColor、 IndexedColorIndex、および ClearIndexedColor はパレット インデックスのバーの色を管理します |
TXLSIconSetSpec | ThresholdEqualsInclude は各アイコンしきい値に対して、その値を含む比較と含まない比較を選択します |
TXLSCfValue | IsIndexedColor と IndexedColorIndex は、従来のパレット インデックスとして格納されたしきい値の色を報告し、 ClearIndexedColor はその形式を再度取り除きます。テーマ カラーやリテラル カラーは、既存のアクセサを通じて引き続き利用できます |
TXLSCfValue、 TXLSDataBarSpec、 TXLSColorScaleSpec、 TXLSIconSetSpec、および TXLSDxfStyle は AttachWriteGuardOwnerを受け入れ、ルール オブジェクトをその所有ワークブックにリンクさせることで、編集時に書き込みガードが自動的に取得されるようにします。所有側は TXLSCondFormatWriteGuardOwnerを実装し、その唯一の AcquireWriteGuard メソッドがルールにワークブックの書き込みガードを渡します。 TXLSDxfStyle は、パレット インデックスのルール カラーのために FontColorIndex を伴う FontColorIsIndexed と、 FillFgColorIndex / FillFgColorIsIndexed および FillBgColorIndex / FillBgColorIsIndexed の各ペアに加え、差分フォントのオーバーライドである FontName、 FontSize、 FontScheme (空文字列、ポイント サイズ、または major / minorのようなテーマ フォント スロット) を、既存の太字・斜体・下線・色の各メンバーと併せて追加します。これらの代入はそれぞれ書き込みガードを取得し、再出力に備えてルールを dirty としてマークします
TXLSConnections、 TXLSDataTables、および TXLSQueryTables は OnAcquireWriteGuard (型 TXLSConnectionAcquireWriteGuard、 TXLSDataTableAcquireWriteGuard、 TXLSQueryTableAcquireWriteGuard) を公開します。これは編集パスが、変更前に所有ワークブックの IXLSWorkbookWriteGuard を取得し、その後ワークブックの世代を進めるために使用するフックです。ガードは StartGenerationを記録し、 Complete が書き込みの完了を知らせることで、依存するキャッシュを再構築できます
保持されたデータ接続は型付きの記述を持ちます。 TXLSConnectionKind (xlckUnknown、 xlckOdbc、 xlckDao、 xlckFile、 xlckWeb、 xlckOleDb、 xlckText、 xlckAdo) が接続を分類し、 TXLSConnectionCredentials (xlccIntegrated、 xlccNone、 xlccStored、 xlccPrompt) が認証モードを記録し、各接続パラメーターの値は TXLSConnectionParameterValueKind (xlcpvNone、 xlcpvBoolean、 xlcpvDouble、 xlcpvInteger、 xlcpvString、 xlcpvCell) でタグ付けされます。What-If データ テーブルは、格納された定義の種類を TXLSDataTableKind
What-If データ テーブルとピボット グループ化
TXLSDataTable | Assign、 ContainsCell、および IsRoot はテーブルをコピーして検査します。 Kind、 FirstRow、 FirstCol、 LastCol、 LastRow、 AlwaysCalculate、 ColumnInputCol、 ColumnInputRow、 ColumnInputDeleted、 RowInputCol、 RowInputRow、および RowInputDeleted は格納された計算定義を公開します |
TXLSDataTables | Add、 AddExisting、 Delete、 Clear、 Assign、 AdjustForShift、および Offset はコレクションを維持します。 FindByCell と FindRoot は、指定したセルを含む、またはそのセルをルートとするテーブルを検索します。 Count、 Items、および OnChange はコレクションの状態を公開します |
TXLSPivotCacheField | GroupBaseField と GroupParentField は、グループ化されたフィールドとそのソースまたは親フィールドとの関係を公開します |
アイコン セットのしきい値は、プログラムから描画または検証できます。 XLSCfIconSetCount は TXLSIconSetType が定義するアイコンの数を報告し、 XLSBuildCfIconGeometry は 1 つのアイコンを描画するプリミティブ ( TXLSCfIconGeometry 、種類TXLSCfIconPrimitive: TXLSCfIconPrimitiveKind、 cfipPolygon、 cfipEllipse、 cfipRect) とポイント ( cfipLine) をTXLSCfIconPointに格納します。これにより、カスタム レンダラーも Excel 組み込みのアイコン形状と一致するようになります
診断、数式トレース、および検証
TXLSDiagnostic | Code、 NativeCode、 Message、 Severity、 ExceptionClass、 PartName、 RecordId、 SheetIndex、 SheetName、および StreamOffset は、パーサー、ライター、またはパッケージの 1 件の診断を識別します |
TXLSDiagnostics | Add は診断を追加し、 Clear はコレクションをリセットし、 Count と Items はエントリを列挙します |
TXLSDiagnosticSeverity and TXLSDiagnosticOperation | TXLSDiagnosticSeverity (xlsDiagnosticInfo、 xlsDiagnosticWarning、 xlsDiagnosticError、 xlsDiagnosticFatal) は 1 件の診断を分類し、 TXLSDiagnosticOperation (xlsOperationNone、 xlsOperationOpen、 xlsOperationSave、 xlsOperationCalculate、 xlsOperationExport) はその診断を生成したフェーズを表します。 OnDiagnostic ハンドラーは、配信された TXLSDiagnostic |
TXLSFormulaDebugSession | CurrentStep、 DependencyCount、 NodeCount、および StepCount は、現在のデバッガー スナップショットとそのトレース サイズを公開します |
TXLSFormulaTracer | StepCount は記録された評価ステップ数を報告します |
TXLSImportCheck | AddRule、 AddUniqueRule、および AddCrossColumnRule が列述語、複合一意性、型付き比較を構成します。 Check は、再計算やパック済みセルの実体化を行わずに、保存されたワークシート値と数式キャッシュから構造化された違反を返します。 HeaderRow、 FirstRow、 LastRow、 OnVerifyCell、 ViolationCount、および Violation は範囲、コールバック、結果を公開します。 Annotate と KeepOnlyViolations は明示的な修正ワークブック操作です。型、境界、日付システム、タプル識別、失敗動作については インポート検証スキーマを参照してください |
インポート検証スキーマ
lxImportCheck の TXLSImportCheck は、アプリケーション所有のルールに対して TXLSXWorksheet を検証します。保存されたスカラー値と保存された数式結果を検査し、1 始まりのワークシート座標を使用し、テキストから数値、テキストから日付、テキストからブールへの暗黙の変換は行いません
Validator := TXLSImportCheck.Create;
try
Validator.HeaderRow := 1;
Rule := Validator.AddRule(2);
Rule.Name := 'quantity';
Rule.Flags := [irRequired, irValueType, irValueRange];
Rule.ValueKind := ivkInteger;
Rule.MinimumValue := 1;
Rule.MaximumValue := 1000;
Validator.AddUniqueRule([1, 3]).Name := 'account-and-region';
Validator.AddCrossColumnRule(4, 5, icLessOrEqual).Name := 'start-before-end';
FailureCount := Validator.Check(Sheet);
if FailureCount > 0 then
Validator.Annotate(Sheet, 'Import validator');
finally
Validator.Free;
end;
HeaderRow > 0 は次の行からチェックを開始し、FirstRow より優先されます。それ以外では FirstRow の既定は 1 です。LastRow = 0 はワークシートの最終使用行を使用し、正の LastRow はセルを作成せずに存在しないセルを含められます。列は 1 から 16,384 の範囲内で、アクティブなデータ行の境界は 1 から 1,048,576 の範囲内でなければなりません
列ルールと明示的な型
TlxImportColumnRule | Column、 Flags、 Name、 Title、 MinLength、 MaxLength、 Pattern、 ValueKind、および DateSerialMode が 1 つの列を構成します。 MinimumValue、 MaximumValue、 HasMinimum、 HasMaximum、 MinimumInclusive、および MaximumInclusive が境界を構成します。 Validate はスキーマ構成をチェックし、 PreparePattern は正規表現を準備します。2 つの Check オーバーロードは、エラー メッセージとオプションの TlxImportViolationKind を伴うブール値を返します |
TlxImportRuleFlags | irRequired、 irTextLength、 irPattern、 irUnique、および irCallback は既存のチェックを保持します。 irValueType は ValueKind を有効化し、 irValueRange は構成された境界を有効化します。フラグのない列はチェックされません |
TlxImportValueKind | ivkAny はサポートされる有限スカラー値を受け入れ、 ivkNumber は有限の数値 Variant を受け入れ、 ivkInteger はさらに整数値を要求し、 ivkDate は日付 Variant または明示的に有効化された Excel シリアルを受け入れ、 ivkBoolean はブール Variant を、 ivkText は文字列 Variant を要求します |
TlxImportDateSerialMode | idsNone は既定で、数値を日付とは区別します。 idsExcel1900 と idsExcel1904 は、irValueType と ValueKind = ivkDate を使って、ある列の数値を明示的に解釈します |
AddRule(Column) は、その列の以前のルールを置き換えて解放します。値ごとの型、範囲、長さ、パターンの述語は、欠落値、null、空文字列をスキップします。一方 irRequired はそれらを報告します。一意性は後述の個別ポリシーを保持します。空白以外の空白文字は値のままです。数値はブールとはみなされず、日付は通常の数値とはみなされず、数値に見える文字列はテキストのままです
MinimumValue または MaximumValue の代入がその境界を有効化します。HasMinimum または HasMaximum のいずれでもう一度無効化できます。両方の包含スイッチの既定は True です。境界は有限の型付き数値または日付でなければならず、2 つの境界は比較可能で空でない区間を記述しなければなりません。逆順、欠落、互換性がない、または空の境界は、ワークシート検証の開始前に発生します
数値境界は数値を比較し、日付境界は日付を比較します。整数対整数の比較は Int64 と UInt64 の全ビットを保持します。互換性のないカテゴリの値は範囲チェックに失敗します。テキスト長と正規表現の述語は引き続きスカラーのテキスト表現を検査し、正規表現チェックは既存の IsMatch 動作を保持するため、完全なテキストが一致する必要がある場合は ^...$ のようなアンカーを使用してください。無効な正規表現は互換性のためにそのパターン チェックを無効化します
日付書式の Excel 値
Excel からインポートされたセルは、数値書式が日付を表示していても、数値シリアルを含むことがあります。それが受け入れられるインポート スキーマである場合は、シリアル モードを明示的に選択してください。モードが影響するのは検証だけで、保存されたセル値を変更することは決してありません
Rule := Validator.AddRule(4); Rule.Flags := [irRequired, irValueType, irValueRange]; Rule.ValueKind := ivkDate; if Sheet.Workbook.Date1904 then Rule.DateSerialMode := idsExcel1904 else Rule.DateSerialMode := idsExcel1900; Rule.MinimumValue := VarFromDateTime(EncodeDate(2026, 1, 1)); Rule.MaximumValue := VarFromDateTime(EncodeDate(2026, 12, 31));
VarFromDateTime は Variants で、EncodeDate は SysUtils で宣言されています。数値シリアルは非負で、10000 年 1 月 1 日より前に解決されなければなりません。小数シリアルは時刻部分を保持します。1900 システムは、うるう日の幻想を示す区間のため、60 以上 61 未満のすべてのシリアルを拒否します。1904 システムはシリアル ゼロを 1904 年 1 月 1 日にマップします
日付境界には時刻部分が含まれるため、12 月 31 日の深夜に設定された最大値は、その日の時刻がそれ以降の値を除外します。最終日全体を受け入れる必要がある場合は、翌年 1 月 1 日を排他的上限としてください。10/08/2026 のようなテキストの日付は、構成されたシリアル モードに関係なくテキストのままです
複合一意性と列間比較
AddUniqueRule(const AColumns: array of Integer): TlxImportUniqueRule | 順序付きの空でない異なる列リストに対する独立したタプル制約を追加します。 Name がルールを識別し、 Title がメッセージの前置詞となり、 ColumnCount と 0 始まりの Columns[Index] がメンバーを公開し、 SkipIncompleteRows の既定は True です |
AddCrossColumnRule(ALeftColumn, ARightColumn: Integer; AComparison: TlxImportComparison): TlxImportCrossColumnRule | 読み取り専用の LeftColumn と RightColumn、編集可能な Comparison、 Name、 Title、および既定が True の SkipBlankValues を持つ同一行比較を追加します |
TlxImportComparison | icEqual、 icNotEqual、 icLess、 icLessOrEqual、 icGreater、および icGreaterOrEqual が関係を選択します。数値ペアと日付ペアは値を比較し、ブール ペアは False を True より先に順序付け、文字列ペアは大文字小文字を区別する UTF-16 コード単位を序数比較します |
複合キーは各メンバーの正確な Variant 型とテキスト識別を保持します。Integer(1)、 Double(1)、文字列 '1'、ブール、日付は別々のメンバーです。ケース フォールディング、Unicode 正規化、ロケール解析、区切り文字のあいまいさはありません。('ab', 'c') と ('a', 'bc') のような組み合わせは異なるままです。各検証パスは新しいタプル インデックスを開始します
SkipIncompleteRows = True のとき、欠落、null、空文字列のメンバーはその行をタプル一意性から除外します。False に設定すると、それらのメンバーが元の Variant 識別とともに含まれます。重複は最初のタプル列をセル アドレスとして報告し、FirstDuplicateRow を通じて最初に一致した行を報告します
既存の単一列 irUnique はテキストベースの大文字小文字を区別しない照合動作を保持し、欠落または null の値をスキップします。1 つの列に対して厳密な型付き識別が必要な場合は AddUniqueRule([Column]) を使用してください
列間比較は、文字列から数値、数値からブール、通常の数値から日付への型強制を決して行いません。混在する互換性のないカテゴリは icNotEqual でも失敗します。文字列比較は、結合と分解された Unicode を区別し、埋め込み null 文字を保持し、短い前置詞優先の順序を使用します。SkipBlankValues = False のとき、どちらかの空白オペランドが列間違反を生みます
構造化された結果と修正ワークブック
TlxImportViolation | Row、 Col、 SheetName、および Address がセルを識別します。 Address は A1 表記です。 ValueText と ErrorText は表示情報を運びます。 RuleName と Kind は構成されたルールと失敗カテゴリを識別します。 RelatedColumn は列間失敗の第 2 オペランドを識別し、 FirstDuplicateRow は一意性失敗の元の行を識別します |
TlxImportViolationKind | ivRequired、 ivTextLength、 ivPattern、 ivUnique、 ivCallback、 ivValueType、 ivValueRange、 ivCellError、 ivFormulaCacheMissing、 ivCompositeUnique、および ivCrossColumn がサポートされる失敗カテゴリを区別します |
Check(Sheet) は違反数を返し、ViolationCount と 0 始まりの Violation(Index) がレポートを列挙します。1 つの列ルールは最初に失敗した述語を報告し、独立して構成されたタプルと比較ルールは同じセルに対してさらに違反を追加できます。呼び出し側が安定したアプリケーション ルール識別子を必要とする場合は、意味のある Name 値を割り当ててください
数式セルは保存されたキャッシュ値を使って検証されます。保存されたキャッシュ結果のない数式は ivFormulaCacheMissing を報告し、エラー結果は ivCellError を報告します。新しい数式結果が必要な場合は、チェックの前に明示的に再計算してください。検証は外部ソースにアクセスせず、数式定義を変更せず、キャッシュされていない数式を評価しません
OnVerifyCell は TlxImportVerifyCell コールバック シグネチャを保持し、適用可能な列述語と一意性チェックが成功した後に実行されます。ブール値を返し、アプリケーション エラー メッセージを設定できます。コールバックはワークブックと検証スキーマを変更せずに保たなければならず、ワークブックへの書き込みは読み取りリースによって拒否されます。コールバックの例外は伝播し、リースは後続の操作のために解放されます
Check は注釈を付けたり、行を削除したり、パック済み値を実体化したりしません。チェック後に Annotate を使って赤いフォントを適用し既存のコメントにエラー テキストを追記するか、KeepOnlyViolations を明示的に呼び出して非違反行を取り除き修正ワークブックを作成してください。これらのメソッドは指定されたワークシートを変更するため、レポートを確認したうえで意図したワークブックに対して呼び出してください
検証は同期呼び出しの間、ワークシートとワークブックを借用します。呼び出し側のオブジェクト所有権を引き取らず、インターフェイス所有のワークブックも要求しません。読み取りリースが、チェック全体を通じて関連する保存セル スナップショットと保存数式キャッシュ アクセスを保護します
外部リンクの保存ポリシー
TXLSExternalLinkUpdateMode = (xluPromptUser, xluNever, xluAlways);
property IXLSWorkbook.SaveExternalLinkValues: Boolean;
property IXLSWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
property TXLSXWorkbook.SaveExternalLinkValues: Boolean;
property TXLSXWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
xluPromptUserを使用します。 xluNever と xluAlways はワークブックに格納される更新設定を変更するだけであり、外部ファイルやネットワークへのアクセスを許可したり開始したりすることはありません
計算監査とワークブック ヒント
function TXLSWorkbook.RecalcAndVerify(MaxIssues: Integer = 10000): TXLSCalculationAuditReport;
function TXLSXWorkbook.RecalcAndVerify(MaxIssues: Integer = 10000): TXLSCalculationAuditReport;
function TXLSWorkbook.RecalcAndVerifyEx(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSXWorkbook.RecalcAndVerifyEx(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSWorkbook.RunCalculationAudit(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSWorkbook.FormulaIsVolatile(Formula: WideString): Boolean;
function TXLSWorkbook.AuditOverlayHash(SheetIndex, Row, Col: Integer): Integer;
function TXLSWorkbook.AuditOverlayRead(SheetIndex, Row, Col: Integer; var Value: Variant): Boolean;
procedure TXLSWorkbook.AuditOverlayWrite(SheetIndex, Row, Col: Integer; const Value: Variant);
procedure TXLSWorkbook.AuditOverlayClear;
TXLSCalculationAuditIssueKind = (xlcaiCacheMismatch, xlcaiParseFailure,
xlcaiMissingFunction, xlcaiMissingName, xlcaiUnsupportedArguments,
xlcaiCircularReference, xlcaiExternalReferenceDenied,
xlcaiExternalReferenceMissing, xlcaiDataTableSkipped, xlcaiCancelled,
xlcaiInternalFailure);
TXLSCalculationAuditIssue = record
Kind: TXLSCalculationAuditIssueKind;
SheetIndex: Integer;
SheetName: WideString;
Row: Integer;
Col: Integer;
Formula: WideString;
Symbol: WideString;
Expected: Variant;
Actual: Variant;
ResultCode: Integer;
Stack: WideString;
ExternalTarget: WideString;
end;
TXLSCalculationAuditIssues = array of TXLSCalculationAuditIssue;
TXLSRecalcAuditProgress = procedure(ASender: TObject;
ACurrent, ATotal: Integer; var ACancel: Boolean) of object;
property WorkbookCodeName: WideString;
property CalculationThreadMode: TXLSCalculationThreadMode;
property ForceFullCalculationState: TXLSOptionalBooleanState;
property RefreshAllOnLoadState: TXLSOptionalBooleanState;
RecalcAndVerify は、数式シンボルの失敗とキャッシュ値の不一致を、ワークシート座標、数式、シンボル、期待値と実際の値、有界な切り詰めを伴う安定した構造化カテゴリにまとめます。キャッシュとワークブックのセマンティクスは変更されません。 RecalcAndVerifyEx はディープ監査を実行します。すべての数式を依存関係グラフを通じて 1 回評価し、その結果を分離された結果オーバーレイに置くことで、依存セルは古いキャッシュではなくこのパスの値を読み取ります。評価の失敗 (未サポートの引数、循環参照、拒否または欠落した外部参照、スキップされたデータ テーブル、キャンセル、内部障害) を結果コード付きで分類し、失敗ごとに有界な呼び出しスタックを記録し、問題の予算と進行状況/キャンセル シンクを尊重します。変更されていないワークブック構造に対して完全に成功したパスの後に ApplyResults が再計算値をアトミックにコミットする場合を除き、読み取り専用のままですAbsoluteTolerance と RelativeTolerance はミスマッチ報告を制御するものであり、中間計算値や明示的なキャッシュ適用を制御するものではありません
数値結果の場合、ミスマッチとみなすには絶対差が AbsoluteTolerance を超え、相対許容誤差が有効なときはさらに RelativeTolerance * max(abs(Expected), abs(Actual))
を超えることが求められます
いずれかのしきい値に一致する差は許容されます。それでも変更された値は監査オーバーレイに入るため、依存数式は現在の計算値を参照でき、差が報告基準に達しなくても ApplyResults はそれらの値をコミットします
読み取り専用の監査が保存済みキャッシュを変更することはありませんTXLSCalculationAuditReport.Issues の各要素は TXLSCalculationAuditIssueです。 Kind が xlcai* カテゴリの 1 つを選択し、 Expected / Actual はキャッシュ不一致のときに比較された値を保持し、 Stack は Sheet!A1 > Sheet!B2 の形式 (最外フレームが先頭) で描画される有界な評価呼び出しチェーン、 ExternalTarget は外部参照の問題における外部ワークブックを記述します。 TXLSRecalcAuditOptions.OnProgress は TXLSRecalcAuditProgress シンクで、 ACurrent / ATotal のノード進行状況を受け取り、 ACancel を設定すると次のノード境界で監査を停止し、単一の xlcaiCancelled 問題を報告できますRunCalculationAudit は、ワークブック レベルの監査ラッパーが委譲するエンジン エントリで、同じオプション レコードを受け入れます。 FormulaIsVolatile は、数式が毎回のパスで再計算を強制するかどうか ( NOW、 RAND、 TODAY、 OFFSET、 INDIRECTなどの呼び出しや、解決できない参照) を報告しますAuditOverlayWrite は 1 つのセルの代替値を格納し (1 始まりのシート インデックス、計算機の規約に合わせた 0 始まりの行と列)、 AuditOverlayRead と AuditOverlayHash がそれを照会し、 AuditOverlayClear がレイヤーを空にします。オーバーレイされた値は通常のセル値ゲッターから返されるため、ワークシートのセルを変更することなく、再計算とディープ監査がそれらの値を観察します。オーバーレイをクリアすると、格納された値に戻りますテーブル数式と IME 状態
property TXLSXTable.ColumnCalculatedFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TXLSXTable.ColumnTotalsFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TDataValidation.ImeMode: TXLSDataValidationImeMode;
property TXLSXDataValidation.ImeModeKind: TXLSDataValidationImeMode;
SaveExternalLinkValues を False に設定すると、クラシック形式の XCT レコードと CRN レコード、または XLSX の外部ブック sheetDataSet サブツリーが省かれますが、リンク先、シート名、外部の定義名、リレーションシップ、数式参照、不明な XML、およびインメモリ キャッシュは保持されます。同じワークブックでこのプロパティを True に戻せば、保持されたキャッシュを再度シリアライズできます
Web アドイン作業ウィンドウの検査と削除
function IXLSWorkbook.HasWebAddinTaskPanes: Boolean;
function IXLSWorkbook.WebAddinTaskPaneCount: Integer;
function IXLSWorkbook.RemoveWebAddinTaskPanes: Integer;
function TXLSXWorkbook.HasWebAddinTaskPanes: Boolean;
function TXLSXWorkbook.WebAddinTaskPaneCount: Integer;
function TXLSXWorkbook.RemoveWebAddinTaskPanes: Integer;
1303 を追加し、変更の前に例外を発生させます。クラシック XLS と ODS は、パッケージを走査せずに False、 0、および -1 を返します
ワークブックのオブジェクト表示ポリシー
TXLSObjectDisplayMode = (xlsodmShowAll, xlsodmShowPlaceholders,
xlsodmHideAll);
property IXLSWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSXWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSPaginationModel.ExportObjectPlaceholders: Boolean;
property TXLSPDFExport.ExportObjectPlaceholders: Boolean;
property TXLSSvgExport.ExportObjectPlaceholders: Boolean;
property TXLSPageImageExporter.ExportObjectPlaceholders: Boolean;
property TXLSPrintDocument.ExportObjectPlaceholders: Boolean;
property TXLSXHtmlExportOptions.ExportObjectPlaceholders: Boolean;
workbookPr.showObjectsに対応付けます。値が欠落している場合の既定は xlsodmShowAllで、手を加えていないクラシックの予約ペイロードと未サポートの XLSX トークンはロスレスのまま保持され、明示的な代入は正規の値のみを出力します
ExportObjectPlaceholders を設定すると、画像ペイロードをデコードせずチャート シーンを構築しない、同じ低コストのポリシーが要求されます
xlsodmHideAll は、描画コレクションとオブジェクト駆動の範囲拡張が描画の開始前に行われるのを防ぎます。ワークブック変換は 3 つの状態すべてを引き継ぎ、ODS はプレースホルダー モードで完全な描画出力を書き込み、hide-all モードでは描画とメディアの出力を省略します。ワークシートの背景は独立したままです
描画キャリブレーションの値とスナップショット
TXLSRenderCalibration = record
WidthCorrection: Double;
HeightCorrection: Double;
LineSpacing: Double;
CellMarginFactor: Double;
ScreenScaling: Integer;
MeasurementDpi: Integer;
end;
function XLSDefaultRenderCalibration: TXLSRenderCalibration;
function XLSValidateRenderCalibration(const AValue: TXLSRenderCalibration;
out AInvalidField: TXLSRenderCalibrationField): Boolean;
1、 1、 1、 1、 100、 96です。幅と高さの補正は 0 より大きく 2 未満である必要があり、行間は (0, 4]、セル余白は [0, 4]、画面スケーリングは [100, 500] パーセント、計測 DPI は [36, 2400]RenderCalibration、 CaptureRenderCalibration、および ResetRenderCalibration メンバーを公開します。レコード全体の代入は変更の前に検証を行い、各キャプチャは 1 回の描画操作のための独立した不変規約の値スナップショットを返します
描画ジオメトリとフォント計測
TXLSRenderGeometryBackend = (xlsrgbAutoFit, xlsrgbPagination, xlsrgbPdf,
xlsrgbSvg, xlsrgbBitmap, xlsrgbPrintPreview, xlsrgbViewer, xlsrgbHtml);
TXLSRenderFont = record
Name: WideString;
Size: Double;
Styles: TXLSRenderFontStyles;
Charset: Byte;
end;
function CreateXLSRenderGeometry(
const ACalibration: TXLSRenderCalibration;
AWorkbookGeneration: UInt64;
ABackend: TXLSRenderGeometryBackend;
ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
property TXLSHTMLExport.RenderGeometry: IXLSRenderGeometry;
property TXLSXHtmlExportSession.RenderGeometry: IXLSRenderGeometry;
IXLSRenderGeometry は、1 つの不変のキャリブレーション、ワークブック世代、バックエンド ID、計測サービス、および有界な操作ローカルのメトリック キャッシュを所有します。CreateXLSRenderGeometry は GDI を使用し、lxPortableCairo の CreateXLSPortableCairoRenderGeometry はネイティブ Linux または macOS 上で FreeType/HarfBuzz 付きの明示的なフォント バイトを使用します。 MeasureText はピクセル幅、高さ、行の高さ、アセント、ディセント、行数を返し、 MaximumDigitWidthPixels、 ColumnWidthToPixels、 PixelsToColumnWidth、 PointsToPixels、 PixelsToPoints、および UsableCellWidthPixels は共有のジオメトリ変換を提供します
MarkSheet 計測を含む各パブリック操作に対して 1 つのサービスをキャプチャし、 TXLSPaginationModel.Build は選択された RenderBackendに対して 1 つのサービスをキャプチャします。PDF、SVG、ビットマップ、印刷プレビュー、ワークブック ビューアー、HTML の各エントリ ポイントは出力前に自身のバックエンドを選択し、ワークブックのキャリブレーションを変更しても既存のスナップショットは変化せず、出力はワークシートの寸法を書き込みません
xlsrgbHtml サービスをキャプチャし、一方インクリメンタルな TXLSXHtmlExportSession は BeginExport で 1 回キャプチャし、すべてのシートに対してそのスナップショットを再利用します。どちらのエクスポーターも、保持されたサービスを RenderGeometry を通じて公開し、キャリブレーションとキャッシュの診断に利用できます
IXLSRenderGeometry プロパティ WorkbookGeneration、 CacheCapacity、および CacheEntryCount は、診断のためにバインドされた世代とキャッシュの充填率を報告し、 ImplicitWidthMaximumDigitWidthPixels は暗黙の列幅エミュレーションの基になる桁幅計測を返します
MeasureText は、 TXLSRenderTextMetrics メンバーが TXLSRenderFont フラグ (太字、斜体、下線、取り消し線) の集合である Styles から、 TXLSRenderFontStyle レコード (ピクセル幅、高さ、行の高さ、アセント、ディセント、行数) を埋めます
インポート、コード生成、比較、および監視
TXLSHTMLImport | LoadFromHTML のオーバーロードは、ストリームまたはファイルから HTML テーブルの内容をワークシートへインポートします。開始座標、テーブルの選択、小数点記号はオプションで指定できます |
TXLSCodeGen | Language (型 TlxCodeGenLanguage: lcgDelphi または lcgCppBuilder) は生成されるステートメントのソース方言を選択し、 GenerateToList は生成されたワークブック コードを文字列リストに書き込み、 TlxCodeGenOptions は結合、列幅、表示形式 (cgoMerges、 cgoColumnWidths、 cgoNumberFormats。シートとセルは常に出力されます) によって出力を拡張します |
TXLSXWorkbookCompare | Compare は、型付きの保存セル、数式テキスト、シートの有無、結合を比較します。 Options は数式キャッシュ、基本セル スタイル、行または列のジオメトリを追加し、 SetNumericTolerance は数値の等価性を構成し、 Count、 Diff、 Report は順序付けられた結果を公開します。 ワークブック比較を参照してください |
TXLSFileMonitor | IntervalMs はポーリング間隔を選択し、 SynchronizeEvent は同期されたコールバック配信を選択します。 OnFileChanged ハンドラーは、モニターを非アクティブ化または破棄できるほか、 FileName を変更して別のファイルの監視を開始できます |
TXLSCSVLoader and TXLSCSVSaver | ローダーは区切りテキストをメモリ内の Variant グリッドに解析します。 ParseFile と ParseStream がグリッドを満たし、 CellValue、 RowCount、 ColCount が読み戻します。自動検出された区切り文字 (ValueSeparator) とエンコード (TXLSCsvEncoding: システム ANSI、UTF-16、UTF-8) が使われ、 DetectTypes と列ごとの ColumnTypes エントリ (TXLSCsvColumnType: auto、text、number、date、boolean、skip) によって型の昇格を任意に制御できます。 SkipRows、 AutoTrim、 LocaleTolerantNumbers、 FieldWidths は固定幅とロケールの処理を調整します。 TXLSCSVSaver.SaveAs は RFC 4180 の引用規則でグリッドを書き戻し、 QuoteAllStrings は引用を強制します。 TXLSTSVSaver は、タブ区切り出力のためにこのセーバーから派生しています |
ワークブック比較
lxCompare の TXLSXWorkbookCompare は、数式を再計算せず、どちらのワークブックも変更せずに 2 つの TXLSXWorkbook インスタンスを比較します。シートは大文字小文字を区別しない名前でペアリングされ、シート順序だけの変更は差分を生みません
既定の Options 値は空で、両方のトレランスの既定はゼロです。既定の比較は、追加または削除されたシート、追加または削除された保存セル、変更された型付きリテラル値、変更された数式テキスト、追加または削除された結合範囲を報告します
リテラル比較は、数値、テキスト、ブール値、日付、エラー、空白を区別します。数値 1 とテキスト '1' は異なり、ブールはそのテキスト表記と異なり、日付は独自の型を保持し、エラーは保存されたエラー コードで比較されます。値が等しい数値ストレージ型は等しく比較され、正確な比較では異なる Int64 値は異なるままです
lcoFormulaCachedResults | 数式テキストが一致するセルについて、既存のキャッシュ結果を比較し、欠落または無効化されたキャッシュと利用可能なキャッシュを区別します。同じ型付き値を持つ読み込み済みと計算済みのキャッシュは等しく比較されます |
lcoCellStyles | 一致する保存セル座標で解決された基本スタイルを比較します。フォント、塗りつぶし、グラデーション、罫線、配置、数値書式、セル保護が含まれます。無関係なスタイル プールの挿入順序は差分を生まず、テーマ カラーは各ワークブックの現在のテーマに対して解決されます |
lcoAxisGeometry | 実効的な行の高さ、列の幅、非表示フラグ、アウトライン レベル、折りたたみフラグ、ワークシートの既定値を比較します。実効的な既定値と等しい明示的なサイズは、暗黙的なサイズと等しく比較されます |
lcoDefinedNames | ワークブックおよびワークシート スコープの名前、その数式定義、可視性、コメント、マクロ フラグを比較します。スコープはワークシート名に従い、挿入順序は差分を生みません |
lcoDataValidations | 保存順に検証定義を比較します。正規化されたターゲット範囲、数式、演算子、プロンプト、エラー メッセージ、制御フラグが含まれます。1 つの定義内でのターゲット範囲の順序変更は差分を生みません |
lcoConditionalFormats | 保存順に条件付き書式定義を比較します。実効的な優先度、stop-if-true の動作、ターゲット範囲、数式、差分スタイル、サポートされるカラースケール、データバー、アイコンセットの設定が含まれます。スタイル プールとインデックス パレットの識別子はセマンティックな値に解決されます |
lcoTables | テーブルを名前でペアリングし、範囲、ヘッダー、合計、スタイル設定、コメント、列名、ラベル、数式、配列フラグ、一意名、接続名、フィルター条件、並べ替え条件を比較します。テーブル ID、列 ID、挿入順序は差分を生まず、色フィルターと並べ替えの差分スタイル ID は外観に解決されます |
lcoDrawings | 描画順に型付き描画定義を比較し、グループ子の順序とグラフ プロット グループの順序を保持します。サポートされる正規定義は、画像、テキスト ボックス、グラフ、グループ、完全な型付きスライサー ビュー、型付きタイムライン ビューをカバーし、不透明または未サポートの描画ノードは EXLSSemanticSnapshot を発生させます |
lcoBlankStyleRegions | どちらの側にも保存セルがない座標について解決された基本スタイルを比較します。ワークシートの既定値と仮想スタイル オーバーレイが含まれます。等価な矩形の細分化は等しく比較され、等しい隣接変更はセルを実体化せずに矩形へ統合されます |
lcoRichTextRuns | 一致する保存テキスト セルで実効的な run フォントとテキストを比較し、省略された run プロパティには基本フォントを継承し、空の run を無視し、実効フォントが等しい隣接 run を統合します。プレーン テキストは、等価な既定フォントのリッチテキスト run と一致します |
lcoPivotTables | 型付きピボットテーブル定義を名前でペアリングし、ソース バインディング、レイアウト、フィールド、順序付きビュー メンバー、データ集計、フィルター、グループ化参照、計算定義、スタイル、ネイティブ マテリアライゼーション フラグを比較します。キャッシュと共有メンバー ID はソース識別と型付き値に解決されます |
lcoPivotCaches | ローカルの型付きピボットキャッシュ定義をソース識別でペアリングし、更新メタデータ、フィールド メタデータ、グループ化ラベルと範囲、順序なしの共有メンバー ドメイン、順序付きの型付きレコード値を比較します。数値、テキスト、ブール、日付、エラー、空のメンバーは区別されたままです。日付は binary64 精度を保持し、キャッシュ ID と共有メンバー スロット順序は差分を生みません |
lcoSlicerState | 名前付きスライサー ビューとキャッシュをペアリングします。テーブル列または非 OLAP ピボット バインディング、接続されたピボットテーブル名、型付きメンバー選択、クロスフィルターと並べ替え設定、キャプション、スクロール位置、列レイアウト、寸法、スタイル、ロックとキャプション フラグ、アンカー ジオメトリが含まれます。バインディングはテーブル、列、シート、キャッシュ ID を解決します |
lcoTimelineState | 名前付きの型付きタイムライン ビューとローカルの非 OLAP キャッシュをペアリングします。ソース フィールドと接続されたピボットテーブル バインディング、アクティブな日付選択、キャプション、レベル、ワークシート境界が含まれます。非アクティブな選択は未使用の日付端点を省略します |
Options の型は TlxCompareOption の集合である TlxCompareOptions です。オプションを有効化すると、その差分が既定の比較に追加されます
SetFeatureLimits(MaxBytes, MaxItems) は、どちらの設定も変更する前に両方の正の上限を検証します。MaxFeatureBytes の既定は 64 MiB、MaxFeatureItems の既定は 1,000,000 で、個別のセッターは同じ原子的検証を保持します
機能予算は、両ワークブックからの集約された独立した正準バイト数と数えられたエントリを対象とします。リッチテキスト run、フィルター XML ノード、ピボット フィールド、ドメイン メンバーとレコード値、スライサーまたはタイムライン接続が含まれます。リーダーは、ネイティブ XML を構築する前にカウントと大きなテキスト入力をチェックし、有界な出力ストリームを強制し、上限を超えると EXLSXSemanticBudget を発生させます
SetNumericTolerance(AbsoluteTolerance, RelativeTolerance) は、どちらの設定も変更する前に両方の引数を検証します。両方とも有限かつ非負でなければならず、個別の AbsoluteTolerance と RelativeTolerance のセッターは同じ検証を使用します
数値リテラルと数値キャッシュ値は、その絶対差が AbsoluteTolerance 以下の場合、または大きい方の絶対値に対する差が RelativeTolerance 以下の場合に等しく比較されます。ゼロのしきい値は正確な等価性を保持し、相対計算は極端な反対符号の値に対するオーバーフローを避け、トレランスはテキストを型強制せず、日付、スタイル、ジオメトリには適用されません
LeftName と RightName は Report 行が使用する省略可能な表示名を設定します。既定は left と right です。名前が影響するのはレポートだけで、シートのペアリングや比較には影響しません
Comparer := TXLSXWorkbookCompare.Create;
try
Comparer.Options := [lcoFormulaCachedResults, lcoCellStyles,
lcoAxisGeometry];
Comparer.SetNumericTolerance(0.001, 0.000001);
DifferenceCount := Comparer.Compare(LeftWorkbook, RightWorkbook);
for I := 0 to DifferenceCount - 1 do
begin
Entry := Comparer.Diff(I);
ReportLines.Add(Entry.Describe);
end;
finally
Comparer.Free;
end;
Compare は差分数を返し、Count はその後にその数を読み取り、Diff(Index) は 0 始まりのインデックスで比較器所有の TlxCompareDiff を返します。エントリを読んでいる間は比較器を保持し、別の成功した比較の後でエントリを再取得してください
各エントリは Kind、Sheet、該当する場合は 1 始まりの Row と Col、Ref、LeftText、RightText、型付きの LeftKind / RightKind 値を提供します。TlxCompareValueKind は lcvNone、lcvBlank、lcvNumber、lcvText、lcvBoolean、lcvDateTime、lcvError、lcvFormula を含み、lcvNone は不在側または値以外の差分に使われます
TlxCompareKind は lckSheetAdded、lckSheetRemoved、lckCellAdded、lckCellRemoved、lckValueChanged、lckFormulaChanged、lckMergeAdded、lckMergeRemoved を保持し、lckFormulaCacheChanged、lckStyleChanged、lckRowGeometryChanged、lckColumnGeometryChanged を追加します
スタイル差分は LeftText と RightText に安定した正準スタイル フィンガープリントを運びます。ジオメトリ差分は比較されたサイズ、非表示、アウトライン、折りたたみ状態を運び、Ref は影響を受ける連続した軸区間を識別します。行の場合は Row がその最初の行に設定され Col がゼロに、列の場合は Col がその最初の列に設定され Row がゼロに設定されます
機能差分は lckDefinedNameChanged、lckDataValidationChanged、lckConditionalFormatChanged、lckTableChanged、lckDrawingChanged、lckPivotTableChanged、lckPivotCacheChanged、lckSlicerChanged、lckTimelineChanged を使用します。Change は lccChanged、lccAdded、lccRemoved のいずれかで、存在する側は正準定義フィンガープリントを運び、不在側は空文字列を運びます
lckRichTextChanged は、セル座標で変更された run 定義を識別し、LeftText と RightText に正準 run フィンガープリントを運びます。数値トレランスはセル リテラルと数式キャッシュに適用され、型付き機能定義は正確に比較されます
機能参照はスコープ付き名前またはテーブル名を識別するか、検証、条件付き書式、描画定義には 1 始まりのシーケンス位置を使用します。順序付き機能の挿入や移動は複数の位置を変えることがあり、ワークブック レベルの名前エントリは空の Sheet を持ちます
lckBlankStyleRegionChanged は、Row、Col、包含の LastRow と LastCol、およびその A1 Ref を通じて変更された空白矩形を識別します。保存座標は通常のセル比較と lcoCellStyles で処理されるため、保存セルと空白領域を一緒に検査するには両方のスタイル オプションを有効にしてください
Describe は 1 つのエントリを書式化し、Report(List) は書式化されたエントリを呼び出し側所有の TStrings に追加します。型付き値の変更には、型が異なる場合に型ラベルが含まれます。結果はセルの挿入順序ではなく、シート名、行、列、差分の種類、参照で並べ替えられます
比較は読み取りリースを保持し、独立したカーソル スナップショットを通じて保存セルを走査し、パック済みストレージを保持します。ジオメトリは保存されたメタデータ境界とコンパクトな繰り返し行スパンを分割し、空白スタイル比較は、矩形の百万行グリッドを走査せずにアクティブな矩形と保存セルの境界をなぞります。ワークは保存された機能、リージョンの交差、報告された差分に応じて増加します
失敗した比較は、以前の成功した結果を保持します。無効なトレランス代入も既存の設定と結果を保持しますが、nil ワークブックを渡すと結果をクリアしてゼロを返します
この比較は、XLSX ファサードの保存セル コンテンツと選択された型付き機能定義をカバーします。名前、検証、条件付き書式、テーブル、グラフの数式表記はセマンティック数式パーサーを通じて正規化され、ピボット計算数式は保存された定義テキストを保持します
テーブル フィルターは、サポートされるカスタム、値リスト、日付グループ、色、アイコン、動的、上位カウントの各形状と並べ替え条件を受け付けます。独立したフィルター列と値セット エントリは順序を正規化し、ブールの既定値と数値表記は正規化されますが、並べ替え条件の順序は意味を持ったままです
型付きピボット、スライサー、タイムラインの比較は、更新や可用性の評価を行わずに、サポートされるローカル ワークシート ソースと非 OLAP バインディングを解決します。ネイティブ スライサー可用性ヒントは派生した表示メタデータであり、メンバー選択と認識されたネイティブ並べ替えメタデータは比較されます
不透明なネイティブ描画プロパティ、不完全なバイナリ ピボット モデル、外部または OLAP ピボット ソース、生のピボットテーブル補助レコードと拡張 XML、未知のフィルター XML、モデル化されていないスライサーやタイムラインの拡張属性または子は EXLSSemanticSnapshot を発生させます。そのようなデータの保持はセマンティック等価性を意味しません
選択されたインポート済みピボットテーブルとピボットキャッシュの機能は、型付き射影を比較する前に、ネストしたフィールド メタデータとキャッシュ レコードを含めて、保持されたネイティブ XML も検証します。未知の名前空間、属性、子、拡張ペイロードは、同じ協調的機能上限の中で明示的に失敗します。一方、モデル化されたスライサー キャッシュ バインディングはサポートされたままです
TSimpleDomNode.RawName は、リーダー正規化された Name と並んで元の要素 QName を公開するため、既存のパーサー名照合を変更せずに名前空間を考慮した検査ができます
ワークブック設定と不透明なパッケージ メタデータは比較の対象外です。基本スタイル比較は条件付き書式やテーブル スタイルの外観を評価せず、描画比較はセマンティック スナップショットのサポートされる画像、テキスト ボックス、グラフ、順序付きグループ境界を保持します
実効的なリッチテキスト プロパティ
TMsoFbtOpt.StoredPids はソート順で保存された OfficeArt プロパティ識別子を返し、TMsoFbtSp.PersistentFlags はプロパティやアンカーを割り当てずにネイティブ シェイプ フラグを公開します
TMsoShapeContainer.HasPreservedObjectData は保持された OBJ 末尾バイトを識別します。HasOrdinaryEmbeddedPictureObjectData は、画像末尾が認識されたクリップボード形式とゼロの画像フラグ レコードのみを含むことをチェックし、リンクまたは未知のレコードをペイロードをコピーせずに拒否します
TMSOShapeTextBox.HasValidTextRuns は run を作成せずに保存された TXO run 境界と予約フィールドをチェックします。TMsoDrawing.HasUnmodeledAppearance は型付きパーサーがスキップしたネイティブ描画データを識別するため、キャプチャは未解決の外観を明示的に拒否できます
TXLSXRichTextRun.BoldSet、 ItalicSet、 StrikethroughSet、 UnderlineSet、 VertAlignSet、 ColorSet は、false フラグ、none、ベースライン、自動色を含めて、継承されたフォント プロパティと明示的なオーバーライドを区別します。セッターは、その値が新しい run の初期既定と等しい場合でも、プロパティを明示としてマークします
TXLSXRichText.HasUnsupportedAppearance は、型付き run モデルが表現できないネイティブ リッチ プロパティを報告します。ポータブル キャプチャと実効リッチテキスト比較はそのような run を明示的に拒否しますが、サポートされる共有/インライン run プロパティと空白文字はインポート時のセマンティクスを保持します
実効リッチテキスト比較は、隣接する等しい run を統合する前に明示的な false オーバーライドを適用します。継承されたプロパティと明示的にクリアされたプロパティは、共有文字列の重複排除とサポートされる XML ラウンドトリップの間、区別されたままです
TXMLReader.ResolveNamespaceUri(Prefix, Uri) は、リーダー位置を変更せずに現在のスコープ内の名前空間バインディングを解決し、バインディングが存在しない場合は false を返します。空のプレフィックスは既定の名前空間を要求し、生の QName は名前空間を考慮した検査のために引き続き利用できます
不変のリッチ/シーン レコード、キャプチャ ソース拡張、HXRSNP02 転送契約については ポータブル ヘッドレス出力を参照してください
独立したスタイルと軸の検査
TXLSXWorksheet.ReadSemanticCellStyle(Row, Col) は、有効な 1 始まり座標に対して独立した TXLSSemanticCellStyle を返します。保存およびパック済みスタイル、ワークシート既定値、適用可能なスタイル オーバーレイ、暗黙の日付書式、インデックス カラー、テーマ カラーを、セルを実体化したりスタイル プールを変更したりせずに解決します。公開呼び出しは読み取りリースを取得し、条件付き書式とテーブル スタイルの規則を除外します
TXLSXWorksheet.GetStoredAxisSpans(IsRow) は TXLSXAxisSpans を返します。これは、包含的な 1 始まりの FirstIndex と LastIndex を持つ TXLSXAxisSpan レコードの配列です。サイズ、非表示、アウトライン、折りたたみメタデータのフットプリントを報告し、コンパクトな繰り返し行高スパンを保持し、ワークシートの実効的な既定値は通常のプロパティを通じて利用可能なままです
返されるスパンは、互いに素な正規化された分割ではなく、保存されたメタデータのフットプリントを記述します。2 つの軸を比較するアプリケーションは、最初と最後の境界を組み合わせてから、結果として得られる各区間について実効的な状態を 1 回検査できます
TXLSXWorksheet.GetStoredStyleRegions は、コンパクトな仮想書式フットプリントのための包含的な FirstRow、 FirstCol、 LastRow、 LastCol 境界を含む独立した TXLSXStyleRegions を返します。これらのフットプリントは重なり得るため、呼び出し側は ReadSemanticCellStyle で実効的な外観を読み取ります
TXLSXWorkbook.ReadSemanticFeatures(Kind, Sheet, MaxBytes, MaxItems) は、安定した Key、正準な Definition バイト、数えられた ItemCount を持つ独立した TXLSXSemanticFeatures エントリを返します。オプションの正の上限の既定は 64 MiB と 1,000,000 エントリです
TXLSXSemanticFeatureKind は xlsxSemanticDefinedNames、 xlsxSemanticDataValidations、 xlsxSemanticConditionalFormats、 xlsxSemanticTables、 xlsxSemanticDrawings、 xlsxSemanticPivotTables、 xlsxSemanticPivotCaches、 xlsxSemanticSlicers、 xlsxSemanticSlicerCaches、 xlsxSemanticTimelines、 xlsxSemanticTimelineCaches を含みます
定義名と 3 種類のキャッシュはワークブック全体のスコープを持ち、nil シートを許します。他の種類はワークブックに属するワークシートを要求し、ルールと描画は保存された順序を保持し、返される配列とバッファは呼び出し側所有のコピーです。これらのリーダーは読み取りリースを取得し、上述の型付きカバレッジと明示的な未サポート データ動作を継承します
TXLSXWorksheet.ReadSemanticRichText(Row, Col, IncludePlainText, MaxBytes, MaxItems, ConsumedItems) は、1 始まり座標に対して独立した正準 run バイトを返します。リッチテキストが存在せず IncludePlainText が false の場合は空のバッファを返します。オプションの ConsumedItems: PInteger はキャプチャされた run 数を受け取り、プレーンテキストのキャプチャはパック済みストレージを保持します
TXLSPivotCacheField.GroupItemTypes[Index] は GroupItemLabels[Index] に対応する型付き種類を公開し、保存されたグループ化ラベル ドメインの外側のインデックスを拒否します
数式メタデータとピボット クエリ コールバック
TXLSGetCellFormulaText と TXLSCalculator.OnGetCellFormulaText は、1 始まりの SheetIndex と 0 始まりの Row/Col を使って保存された式テキストを読み取り、lxOk または型付きエラー コードを返し、数式非表示の保護を尊重します。TXLSGetPivotTable と OnGetPivotTable は、1 始まりの SheetIndex と 0 始まりの範囲座標を使って借用されたテーブルを配置します
ワークブック エンジンは、通常、読み取り専用、独立した計算コンテキストでこれらのオプション コールバックを接続します。コールバックはターゲットを再計算せず、ピボット ソースを更新せず、所有権を移しません
TXLSPivotDataConstraint は FieldName と型付き Item を保存し、TXLSPivotDataConstraints が field/item ペアを収集します。TXLSPivotTable.GetDataValue は独立したローカル テーブル/キャッシュ スナップショットから、可視のサポートされる集計を 1 つ照会し、IntersectsQueryRange はモデル化されたレポート フィルター セルを含めて 1 始まりのワークシート境界を使用します
TlxPivotQueryBudget はワークとメモリの推定値を同期的に受け取り、評価を続行できるかどうかを返します。EXLSPivotQueryBudget と EXLSPivotQueryUnsupported は、使い果たされた上限と未サポートのキャッシュまたは集計モデルを区別します
TXLSPivotCache.QueryModelIsComplete は、BIFF 生再生の完全性とは独立に、デコードされたクエリ準備状況を記録します。QueryRecordsValid はインポートされたレコード有効性を公開し、SetQueryRecordValidity はレコードを更新せずにフォーマット リーダーの優先順位を適用します
明示的なコードページ バイト
| メンバー | 契約 |
|---|---|
XlsEncodeCodePage(Text, CodePage, MaxBytes = -1) | 明示的な非ゼロのバイト指向ページで正確なバイトを持つ RawByteString を返し、埋め込み null を保持し、Unicode ラウンドトリップ同一性を検証し、表現できないテキストに対して EConvertError を発生させます。非負の MaxBytes は収まる最長の完全文字前置詞を保持し、-1 は長さを無制限にします。検証は切り詰め前の元のテキストを対象とします |
XlsDecodeCodePage(Bytes, CodePage) | 明示的なバイト エンコーディングから WideString を返し、埋め込み null を保持します。不正なバイト シーケンスはインストール済みデコーダーの動作に従います。この API は ANSI ロケールを推測せず、UTF-16 バイト ストリームを扱わないため、ページ 0 と UTF-16 ページ 1200 は拒否されます |
TXLSBlob.GetCompressedUnicodeString(Index, Count) | BIFF8 圧縮 Unicode の正確な U+0000 から U+00FF のコード単位を返し、埋め込み null を保持し、要求されたバイト範囲を検証し、それらのバイトをコードページで解釈しません |
TXLSBlob.AddRawString | AnsiString のコードページ変換なしで正確なエンコード済みバイトを追加し、DataLength を更新します。空の入力はバイトを追加しません |
TXLSCalculator.CodePage, TXLSFormula.FCodePage | 明示的なレガシー数式バイト エンコーディングを選択します。既定は CP1252 です。所有するクラシック ワークブックは、初期化時または SetCodePage 呼び出し時に自身の calculator を同期します |
TXLSFontList.GetFont, TXLSNumFormatList.GetNumFormatBlob, TXLSStyles.GetStyleBlob | オプションの CodePage 引数の既定は 1252 で、BIFF5 テキストをエンコードします。BIFF8 出力は引き続き Unicode です |
TMsoDrawing.StoreNotes | オプションの CodePage 引数の既定は 1252 で、Unicode 前のコメント テキストをエンコードします。既存の BIFF5 通常コメント レコードのサイズ上限はそのままです。このレコード形式に存在しない作成者、リッチテキスト、ジオメトリのフィールドは追加しません |
TXLSCustomName.SetSourceData | オプションの FileFormat と CodePage 引数はインポートされた生の NAME バイトを識別し、既定は xlExcel97 と 1252 です。生のレコードは、その形式とレガシー エンコーディングが要求された出力と一致する場合にのみ再利用されます |
TXLSFormulatArrayItem.GetDataSize, TXLSFormulatArray.GetDataSize, TXLSFormulatArray.GetData, TXLSFormulatArrays.GetDataSize, TXLSFormulatArrays.GetData, TXLSCompiledFormula.GetExternalData | オプションの ACodePage 引数の既定は 1252 です。レガシー文字列配列のサイズと出力は同じエンコード済みバイト数を使用し、BIFF8 文字列は引き続き Unicode です |
返された RawByteString は、AddRawString またはバイト指向のストリーム操作へ直接渡してください。既定の AnsiString に変換すると、ネイティブ FPC システム上でバイトが再エンコードされる可能性があります
クラシック定義名と配列数式ブロック
TXLSCustomName deferred compilation | ClearDefinition は、保存された定義文字列とインポートされた生の NAME バイトを保持したまま、コンパイル済みの RefersTo AST を解放します。 Compile は保存された定義から AST を再構築して成功を報告し、 GetCompiledFormula は自動的に再コンパイルするため、クリアされた名前は次の読み取りで再解決されます。 PeekCompiledFormula はその再コンパイルを誘発せずに現在の AST を返し、 StoredDefinition は解析前の定義ソースを公開します |
TXLSCustomName identity and flags | StoreIndex はコレクション内での名前の格納位置を公開し、 NameID は計算エンジンが使用するワークブック内で一意の数値識別を公開し、 IsHidden と IsMacro は BIFF NAME レコードの hidden フラグと macro フラグを読み書きします |
TXLSFormulatArray.RowsCount, ColsCount | 解析された配列数式ブロックの行と列の寸法を報告します。両方とも 1 から始まり、出力メソッドが運ぶセルごとのアイテム ドメインの上限となります |
クラシック フォント、書式、スタイル プール
TXLSFontList stored font attributes | インデックス付きプロパティは、0 始まりのリスト インデックスで保存されたフォント キーをミラーします。 Name、 Size、 ColorIndex、 Bold、 Italic、 Strikethrough、 Underline が OutLineFont、 Shadow、 SubScript、 SuperScript、 Family、 CharSet とともに、読み取り専用の検査対象として加わります |
TXLSNumFormatList.AddValue, FmtExists | AddValue は書式文字列を登録してそのインデックスを返し、組み込み書式の表記を正規の ID へマップして日付と時刻の書式にフラグを立てます。 FmtExists はカスタム書式文字列がすでに登録されているかどうかを報告します |
TXLSNumFormatList.IsDateFormat, IsDateFormatValue | IsDateFormat は、あるインデックスに保存された書式が日付または時刻の書式としてフラグが立っているかどうかを報告し、 IsDateFormatValue は書式文字列を直接テストして日付と時刻のトークンを調べます |
TXLSStyles.AddStyle, AddBuiltinStyle | AddStyle は XF レコード インデックスにバインドされた名前付きカスタム セル スタイルを登録し、 AddBuiltinStyle は組み込み ID と、行および列レベル スタイルが使用するアウトライン レベルによって組み込みセル スタイルを登録します |
TXLSStyles.BuiltinStyleName | 組み込み ID 0 から 53 に対する正準な Excel 組み込みセル スタイル表示名を返すクラス関数です。範囲外の ID は空の名前を返すため、ライターは生の builtin-byte 形式へフォールバックします |
パッケージとバイナリ ストレージのヘルパー
TXLSXOpaquePackage | LoadWorkbookXmlMetadata はワークブック レベルの XML 状態をキャプチャし、 MarkAllPartsClean はダーティ フラグをリセットし、 WorkbookExtLstXml と WorkbookRootAttributesXml は保持されたワークブック XML フラグメントを公開します。 IsDiscardedPart は、Web アドインのクリーンアップなどの破棄操作によってパーツ名が削除されたかどうかを報告します |
TXLSFileStorage | Load、 LoadFolder、 Write、および WriteFolder は複合ファイルの内容を転送します。 Child と Count は子エントリを列挙します。各エントリは TXLSFileItem です。これは名前付きストレージ ノードであり、その TXLSFileStream サブクラスが格納されたバイトを TXLSBlob として保持し、 DataSize がペイロード長を報告します |
TXLSBlob | Add は別の blob を追加し、 AddByte、 AddWord、 AddLong、 AddDouble、 AddString、および AddWideString は型付きの値を追加します。 CopyData、 CopyMem、 FillByte、 Write、 Clear、 Reset、および Dump は内容を管理し、 Buff と DataLength はストレージを公開します |
TXLSBlobList | Append、 AppendList、 CopyData、および Write はエントリを結合または出力します。 Entries と TotalSize はリストの状態を公開します |
TXLSWideStringBuilder | AddString はテキストを追加し、 Length は累積文字数を報告します |
描画とワークブック ビューアーの追加
TXLSFillFormat | PictureFill は画像ベースの図形塗りつしを構成し、 FillType はライターが出力する塗りつしの種類(ソリッド、グラデーション、画像、またはプリセット テクスチャ)を選択します |
TXLSShapes | AddScrollBar と AddSpinner はフォーム コントロールを作成します。戻り値の TXLSScrollBar と TXLSSpinner オブジェクトはコントロールのジオメトリとリンクされたセルを公開し、スピナーはさらに Min、 Max、 Inc のステップ制限を追加します。一方、 RegisterScrollBar と RegisterSpinner はワークブックから読み込まれたコントロールを登録します |
TXLSWorkbookViewer | CanUndo と CanRedo はトランザクション履歴の利用可否を報告します。 ClearSelectedRange、 CopySelectedRange、 PasteSelectedRange、および PasteText は選択範囲に対して動作し、 ReferencePickMode はセルまたは範囲の参照を対話的に選択できるようにします |
TXLSWorkbookEditHistory | lxWorkbookViewer のヘッドレス コンテンツ トランザクション エンジンは、借用したクラシックまたは XLSX ワークブックをバインドし、範囲保護の事前チェック、Unicode テキストのコピーと貼り付け、範囲のクリア、操作ごとに 1 つの undo/redo トランザクションを提供します。 ヘッドレス編集トランザクションを参照してください |
TXLSCellContentSnapshot | 両方のワークシート クラスは、元のワークシート内の 1 始まり座標で独立したネイティブ コンテンツのキャプチャと復元のために、ReadCellContent(Row, Col) と RestoreCellContent(Snapshot) を公開します。キャプチャは数式を評価せず、存在しないセルを作成せず、パック済みストレージを実体化しません。不変の NativeData ペイロードはリッチテキスト、数式キャッシュ、セル スタイルを保持します。直接の復元は低レベル操作であり、呼び出し側が保護と構造の境界を検証しなければなりません |
ページ分割、画像出力、および印刷
XLSValidateCachedChartSceneModel, XLSRecordCachedChartScene | セルを解決せずにキャッシュされたグラフ メタデータを事前チェックし、lxPortableChart 内の独立したグラフのために有界なベクトルとテキスト プリミティブを記録して、TXLSPortableSceneObjects とアイテム、バイト、テキストの会計を返します。lxPagination エントリ ポイントは、既存の Windows 呼び出し元のために同じ共有実装を保持します。現在のサブセットは、1 つの主プロット グループを持つ通常の縦棒、横棒、折れ線、散布図、円、ドーナツ、単一系列面積グラフをカバーし、記録には検証済みのネイティブ メタデータ、厳密に順序付けされた有限のキャッシュ ポイント、未接続のグラフ モデルが必要です。 キャッシュ グラフ記録を参照してください |
TXLSGraphicsBackend | DrawTiledImage は、クリップされたページ領域全体にわたってシートの背景を繰り返し描画します |
TXLSPaginationModel | CompactRangeMode、 IncludeDrawings、 IncludeGridlines、 IncludeCellBorders、および PaintPageBackground はページの内容を制御し、 RenderDPI、 RenderColorMode、および RenderSession は出力解像度、カラー処理、アクティブな描画セッションを公開します |
TXLSCellImageExporter | Measure は、クラシックまたは XLSX の範囲のピクセル寸法を計算します。 ImageFormat、 JpegQuality、 MaxPixels、 MaxBytes、 IncludeObjects、 IncludeGridlines、 IncludeCellBorders、 BackgroundColor、 TransparentBackground、 BeforePaint、 AfterPaint、および PaginationModel が描画を構成し、観察します |
TXLSPageImageExporter | BeforePaint、 AfterPaint、 MaxPixels、 MaxBytes、 BackgroundColor、および TransparentBackground は、同じ描画フックと出力の安全制限を、ページ分割された画像エクスポートに適用します |
TXLSPrintDocument | PrintWorksheet、 PrintWorkbook、および PrintAllVisibleSheets は、クラシックまたは XLSX の内容を VCL プリンターに送ります。 FirstPage、 PrintRangeOnly、 Collate、 Copies、 OnBeforeNewPage、および OnAfterGeneratePage が印刷ジョブを制御します |
クラシック グラフモデルとワークシートのグラフ オブジェクト
TXLSXChartSeries | LineVisible、 LineColorRGB、および LineWidthPoints は独立した系列の線を記述します。 LineStyleSet、 LineColorSet、および LineWidthSet は明示的な設定を保持し、 EffectiveLineVisible はレガシーの塗りつぶしのみの規約を解決します。 MarkerFillSet と MarkerBorderSet は、明示的な黒と自動のマーカー色を区別します。線と散布図のポータブル記録は、2 から 72 ポイントの円直径をサポートします。色と幅のセッターは変更前に検証し、ワークブックの読み取りリースに従います |
TXLSChartSeries | AddTrendline と AddErrorBars は型付きの系列注釈を作成し、 TrendlineCount と ErrorBarCount はそのコレクションのサイズを報告します。既存の MarkerSize フィールドは生の BIFF twips を保持し、読み取り専用の MarkerSizePoints ゲッターはその値を 20 で割った値(端数を含むポイント サイズ)を返します |
TXLSChartAxis | HasAxcExtFlag は、呼び出し元がビット マスクをデコードしなくて済むように、1 つの生の AXCEXT フラグをテストします |
TXLSChartModel | AxisGroupCount は、グラフからデコードされた主軸グループと第 2 軸グループの数を報告します |
TXLSCustomChart | AddAreaData は、保存時の数式再バインドのために事前構築された面グラフ項目を追加し、 ApplyDateAxisModel は型付きの日付軸モデルを生のグラフ レコードに適用します。 GetStoredRecordInfo は、割り当てなしで 0 始まりのレコード ID とバイト数を読み取り、 ReadStoredRecord(Index, MaxBytes) は TXLSChartStoredRecord 内の独立したバイトを返す前にバイト上限をチェックし、数式を評価せずキャッシュも変更しません |
TXLSWorksheet | AddChartObject はワークシート上にグラフ フレームをアンカーとして配置し、共有グラフ ビルダーに接続します |
TXLSXChartLayoutResolver | TryResolve はオプションのサイズ検証付きで 1 つのレイアウト矩形を解決し、 ResolveChart はグラフ、タイトル、凡例、プロット、軸の矩形を計算します |
型付きグラフ デコードモデル
デコードされたグラフの状態は、プレーンなレコードと列挙型として公開されるため、検査コードが生の BIFF レコードをたどる必要はありません。 TXLSChartInfo は、 TXLSChartTypeFamily (cfBar、 cfLine、 cfPie、 cfArea、 cfScatter、 cfRadar、 cfDoughnut、 cfSurface、 cfBubble) とともにデコード済みのグラフ サマリーを保持し、各系列は TXLSChartSeriesTypeを報告し、 TXLSChart3DState と TXLSChart3DInfo が 3D 表示を記述します。 TXLSChartAxisType (catCategory、 catValue、 catSeries、 catDate) と TXLSChartLegendPosition が軸と凡例を分類し、日付軸モデルは TXLSChartDateUnit (xcduDays、 xcduMonths、 xcduYears) と TXLSChartDateValuesを使用します。 TXLSCustomChart は、デコードされたモデルを TXLSChartInfoを通じて公開し、近似曲線と誤差範囲の注釈は、各系列から到達できる型付きオブジェクト (TXLSChartTrendline、 TXLSChartErrorBars) です
グラフ オーサリング レコード
グラフ シートとビルダーによるオーサリングでは、オブジェクト グラフの代わりにプレーンなレコードを受け付けます。 TXLSChartTrendlineInfo、 TXLSChartErrorBarsInfo、 TXLSChartDataLabelsInfo、および TXLSChartSeriesStyleInfo が、 TXLSWorksheets.AddChartSheet と共有グラフ ビルダーに渡される系列エントリを満たし、 TXLSPivotChartInfo は、ピボットテーブルにグラフを接続するときに使われるピボットグラフのフレーミングを記述します
クラシック グラフの塗りつぶし検査
TXLSCustomChart.GetChartModel は、複雑なペイロード エントリに続くプロパティを含めて、GelFrame レコード内でサポートされるネイティブ OfficeArt プロパティ テーブルと第 3 プロパティ テーブルをデコードします。既存のビルダー表現は引き続きサポートされ、不正なテーブル境界は以前の型付き塗りつぶしを変更せずに残し、未サポート レコードを報告します
グラフ検査は、型付き状態を追加する前に、保存された完全なテキストと注釈ペイロードを検証します。切り詰められた近似曲線名やデータラベル区切り文字は _UnsupportedSemanticRecordID を通じてそのレコード ID を報告し、nil または過小な SeriesText ヘッダーは BIFF5 と BIFF8 の両方でそのレコードを未サポートとして報告します。ペイロードを超える宣言済み series-text 寸法は EReadError を発生させ、部分的なモデルを解放し、保存されたグラフ レコードは変更しません
マーカー ゲッターと塗りつぶし検査は生のグラフ ストレージを保持します。宣言済み外観のキャプチャパスはサポートされるコア グラフを個別に検証しますが、未検証のリッチ タイトルやシェイプ拡張チェックサムは未サポートのままです
境界付き保存グラフ、文字列、フォント リーダー
TXLSChartStoredBytes は独立したバイト配列で、TXLSChartStoredRecord は RecordId と Data を保持します。これらのリーダーは、デコード済みグラフ モデルを作成したり数式を評価したりせずに、保持されたソース ストレージを検査します
| TXLSCustomChart.GetStoredRecordInfo | ペイロードをコピーせずに、0 始まりのレコード インデックスに対してレコード ID とカウント済みバイト長を返します |
| TXLSCustomChart.ReadStoredRecord | インデックスと非負の MaxBytes を検証した後に 1 つのペイロードをコピーします。既定のバイト上限は High(Int64) です |
| TXLSCustomChart.ReadStoredFormulaLeafInfo | 正確なソース calculator と非負のバイトおよびテキスト クォータを使って、コヒーレントな保存 BRAI リーフを検査します。外部の calculator や翻訳所有者は未サポートのリーフを返し、AllowUnboundBiff の既定は False です |
| TXLSCustomChart.ReadStoredFormulaLiteral | 同じ出所とクォータのチェックの後にのみ独立したリテラルを返します。未サポートのリーフは EInvalidOperation を発生させます |
| TXLSCustomChart.SourceBiffVersion, SourceCodePage | 保持されたグラフ レコードの読み取り専用の出所情報です |
| TXLSStringTable.GetStoredStringLength, ReadStoredString | テーブルの 1 始まりの文字列識別を使って既存の UTF-16 ストレージを数え、非負の文字クォータがカバーする場合にのみコピーします。無効な識別と不完全な UTF-16 ストレージは拒否されます |
| TXLSFontList.GetStoredNameLength, ReadStoredName | 非負の文字クォータのもとで名前を数えたりコピーしたりする前に、リストの 0 始まりインデックスで保存されたフォント キーをチェックします |
| TMsoFbtOptItem.HasStoredUnicodeString | 文字列を実体化せずに、有界な保存済み複雑 Unicode 文字列メタデータをチェックします |
| TMsoShapeContainer.HasOrdinaryChartObjectData | 保存されたグラフ オブジェクト型、非ゼロのオブジェクト識別、サポートされるフラグ、および未知のオブジェクト末尾データの不在をチェックします |
共有文字列テーブルのメンテナンスと SST 出力
lxStringTable の TXLSStringTable は、クラシック ワークブックの共有文字列を支えます。以下のメンバーは、リーダー側の登録、スロットのメンテナンス、ラウンドトリップ保存のための生の SST 出力をカバーします
KeyExists, AddWithExtras | KeyExists は、文字列がすでにスロットを占めているかどうかを報告します。 AddWithExtras は Add のリーダー側の相方で、生の rgRun リッチテキストと rgExtRst フォネティック ペイロードを参照カウントを上げずにエントリへ添付します。参照する各セルは後で通常の追加パスを通じてカウントを復元するためです |
Replace, ReplaceIndex | Replace は古いスロットの参照を 1 つ取り除き(カウントがゼロになると解放し)、テキストを再追加して結果のスロットを返します。 ReplaceIndex はテキストをコピーせずに、参照を古いスロットから新しいスロットへ移動します |
AddSSTData, InitExtIndex | AddSSTData は生の SST ペイロードをライターの blob リストに出力します。フォント run 再マップ テーブルを取るオーバーロードは、出力の際に各 FormatRun のフォント インデックスを書き換え([MS-XLS] §2.5.129)、リッチ run が保存時のフォント並べ替えに追従するようにします。空のテーブルはレガシーの逐次出力を保ちます。 InitExtIndex は出力の前に、ライブ スロットに対して ExtSST バケットに番号を付けます |
SlotCount, ExtIndex, ParsedExtSSTDsst, ParsedExtSSTItemCount, BiffSizeLimit | SlotCount はスロット反復の 1 始まりの上限で、削除されたスロットは空として読み取られます。 ExtIndex はスロットをその ExtSST バケット番号に解決し、ライブでないスロットは -1 になります。 ParsedExtSSTDsst と ParsedExtSSTItemCount はインポートされた EXT/SST ヘッダー値を保持します。 BiffSizeLimit は出力される各レコード チャンクの上限で、クラシック ライターは BIFF5 で 2080 バイト、BIFF8 で 8224 に設定します |
PDF 添付ファイル、署名、および HTML エクスポート
IXLSPDFAttachmentSource | WriteTo は、エクスポーターがソース データを所有しなくて済むように、添付ファイルのバイトを PDF エクスポートへストリーミングします |
TXLSPDFExport | AttachmentDuplicatePolicy は重複名の処理方法を選択し、 AttachmentSpoolThreshold は添付ファイルのスプーリングを制御し、 DocumentLanguage はドキュメント言語のメタデータを書き込みます |
TXLSPDFSignature | TextAlign、 TextSize、 TextColor、 TextBold、および TextItalic が、目に見える署名の外観を構成します |
TXLSHTMLExport | ViewMode (型 TXLSHtmlViewMode: 現在のビューまたは完全なスプレッドシート テーブル) が HTML の表示形式を選択し、 HotTrackTargets ( TXLSHtmlHotTrackTargetの集合) と HotTrackColor が、対話的なセルとオブジェクトの強調表示を構成します |
TXLSXHtmlExportOptions | ViewMode、 HotTrackTargets、および HotTrackColor が、XLSX の HTML エクスポートにおける同等の制御を提供します |
計算監査とワークブック コントロール
TXLSCalculationAuditReport | Truncated は問題数の上限による切り詰めを報告し、 StackTruncated は呼び出しスタック フレームの切り詰めを報告し、 Issues は記録された計算問題へインデックス アクセスします |
TXLSUserFunctionRegistry | Generation は、登録済みユーザー関数のセットが変わるたびに変化するため、キャッシュされた数式バインディングを無効化できます |
EXLSReportRecoverableData | Category は、呼び出し元に提示された復元可能なレポート データのカテゴリを識別します |
IXLSWorkBook | ManualCalculationThreadCount は、手動計算で使用されるワーカー数を制限します |
TXLSXDataValidation | HasUnknownImeMode は、HotXLS が保持したものの認識できない IME モードの値を報告します |
TXLSXTable | ColumnCalculatedFormulaArrayRaw と ColumnTotalsFormulaArrayRaw は、テーブル列の元の配列数式テキストを公開します |
レガシー PivotCache フレーミング互換性
TXLSPivotCache | RawBucketIndex はソース サブストリームの位置を識別し、 RawFramingIsLegacy は古い HotXLS のフレーミングを識別し、 RawModelIsComplete は型付きモデルがすべてのレコードを表しているかどうかを報告し、 CanUpgradeFraming はオプトインの型付き再出力が安全かどうかを報告します |
TXLSPivotCache | StreamId はクラシック キャッシュ ストリームの識別子を公開し、 SourceDataType はクラシックのソース データ型を公開し、 RawHasStorageStream は読み込まれたキャッシュが独立した PivotCache ストレージ ストリームから来たものかどうかを報告します |
TXLSWorkbook | UpgradeLegacyPivotCacheFraming は、型付きモデルが完全なレガシー HotXLS キャッシュ フレーミングに限って書き換えることをオプトインします。通常の生キャッシュ リプレイが既定のままです |
StreamId は SXStreamID レコード ([MS-XLS] §2.4.303) として書き込まれ、 SXDB ヘッダーの idstm フィールドとしても繰り返し書き込まれます。両者は一致しなければなりません。 SourceDataType は SXVS レコード ([MS-XLS] §2.4.317: $0001 ワークシート、 $0002 外部、 $0004 統合、 $0010 シナリオ) として書き込まれ、 SXDB ヘッダーの vsType フィールドとしても繰り返し書き込まれます。両者は一致しなければなりません。ワークシート範囲から構築されたキャッシュはワークシート型から始まりますが、ファイルから読み戻されたキャッシュは、そのサブストリームが運んでいた値を保持します。そのため、BIFF ライターが、自分では出力していないレコードを指す SXDB フィールドを残すことはありません。 RawHasStorageStream は、独自のストレージ ストリームから読み込まれ、ワークブック全体の記述子がキャッシュ レコードの前に置かれるキャッシュを示します
クリップボード統合と貼り付けオプション
TXLSPasteOption = (xlpoValuesOnly, xlpoInsertRows, xlpoInsertCols);
TXLSPasteOptions = set of TXLSPasteOption;
function XLSGetClipboardText: WideString;
function XLSSetClipboardText(const Text: WideString): Boolean;
function XLSSetClipboardTextAndHtml(const Text: WideString;
const Html: AnsiString): Boolean;
function XLSBuildHtmlClipboard(const Html: AnsiString): AnsiString;
function XLSEncodeClipboardField(const Text: WideString): WideString;
function XLSClipboardHasText: Boolean;
function XLSParseClipboardGrid(const ClipboardText: WideString;
Loader: TXLSCSVLoader): Boolean;
function XLSClipboardHasXmlSpreadsheet: Boolean;
function XLSGetClipboardXmlSpreadsheet: WideString;
function XLSParseXmlSpreadsheet(const XmlText: WideString;
Loader: TXLSCSVLoader): Boolean;
function XLSClipboardHasBiff8: Boolean;
function XLSGetClipboardBiff8: AnsiString;
function XLSReadClipboardPasteData(out Biff8: AnsiString;
out Text: WideString): Boolean;
function XLSSetClipboardBiff8(const Biff8: AnsiString;
const Text: WideString; const Html: AnsiString = ''): Boolean;
PasteFromClipboard オーバーロードで共有されます。 xlpoValuesOnly は数式セルのキャッシュ値を保持し、書式と結合をスキップします。 xlpoInsertRows と xlpoInsertCols は、ブロックが配置される前に既存の内容をシフトしますCF_UNICODETEXT を使用し (現在の ANSI コード ページを通じて CF_TEXT にフォールバック)、 XLSSetClipboardTextAndHtml はテキストとスタイル付きの HTML Format ペイロードを 1 つのトランザクションで書き込み、 XLSBuildHtmlClipboard はドキュメントまたはフラグメントの CF_HTML バイト オフセットを計算し、 XLSEncodeClipboardField はタブ区切りの 1 フィールドを引用符で囲みます。 XLSParseClipboardGrid は、クリップボードのテキストをタブ区切りの行として解析します。このとき、 TXLSCSVLoader が CSV に使うのと同じ型の推定が行われます。 XLSParseXmlSpreadsheet は、 XLSGetClipboardXmlSpreadsheet で取得した SpreadsheetML 2003 ペイロードに対して、同じローダーによるグリッド生成を実行します。 Biff8 ヘルパーは、Excel 自身がクリップボードに置くネイティブ ストリームを検出して読み取るため、貼り付けたデータはテキストを損なうことなく値、数式、書式を保ちますXLSReadClipboardPasteData は、 Biff8 ストリームと Unicode テキストを 1 回のクリップボード ロックで取り込みます。そのため、2 回の読み取りの間にクリップボードを開き直す必要がなく、同時にクリップボードを握っている別のアプリケーションにどちらの形式も奪われません。 XLSSetClipboardBiff8 は対応する書き込み側で、BIFF8 複合ファイル ストリーム、タブ区切りの Unicode テキスト、オプションの CF_HTML ペイロードを 1 つのトランザクションで配置します。 Text か Html に空文字列を渡せばその補助形式をスキップでき、 Biff8 部分だけは必須ですセル表示テキストの解決
TXLSCellDisplayMode = (xcdmFormattedValue, xcdmFormulaText,
xcdmSuppressedZero);
TXLSCellDisplayOptions = record
ShowFormulas: Boolean;
ShowZeros: Boolean;
SheetProtected: Boolean;
FormulaWidthFactor: Double;
DateSerialZero: Double;
end;
TXLSCellDisplayInput = record
HasFormula: Boolean;
FormulaHidden: Boolean;
IsNumericZero: Boolean;
FormulaText: WideString;
FormattedText: WideString;
end;
TXLSCellDisplayResult = record
Mode: TXLSCellDisplayMode;
Text: WideString;
TreatAsText: Boolean;
EffectiveWidthFactor: Double;
end;
function XLSDefaultCellDisplayOptions: TXLSCellDisplayOptions;
function XLSNormalizeFormulaDisplayText(const FormulaText: WideString): WideString;
function XLSResolveCellDisplay(const Options: TXLSCellDisplayOptions;
const Input: TXLSCellDisplayInput): TXLSCellDisplayResult;
XLSResolveCellDisplay を直接呼び出すこともできます。 XLSDefaultCellDisplayOptions は標準の既定値を返し、 XLSNormalizeFormulaDisplayText は表示用に数式文字列を正規化しますクラシック データ入力規則オブジェクト
TXLSDataValidationType = (xlsDvAny, xlsDvWhole, xlsDvDecimal, xlsDvList,
xlsDvDate, xlsDvTime, xlsDvTextLength, xlsDvCustom);
TXLSDvErrorStyle = (xlsDvErrStop, xlsDvErrWarning, xlsDvErrInformation);
TDVRange = class; { one validation rule over one or more ranges }
TDVRangeList = class; { the per-sheet rule collection }
TDataValidator = class; { engine that checks edits against the rules }
TXLSWorksheet.Add*Validation ヘルパーは、シートの TDVRange に TDVRangeListルールを作成します。各ルールは、その TXLSDataValidationType、境界、入力メッセージとエラー メッセージ、および TXLSDvErrorStyleを保持します。 TDataValidator は、編集をルールに対して評価し、その値が受け入れ可能かどうかを報告します。これは、Excel 自身の入力規則プロンプトの背後にあるチェックでもありますインデックス カラーの走査と解決
TXLSIndexedColorKind = (xickPalette, xickAutomatic, xickSystem, xickInvalid);
TXLSSystemColorRole = (xscrNone, xscrWindowText, xscrWindowBackground,
xscrChartText, xscrChartBackground, xscrChartNeutral, xscrToolTipText);
TXLSIndexedColorResolution = record
Kind: TXLSIndexedColorKind;
RawIndex: Int64;
PaletteSlot: Integer;
SystemColorRole: TXLSSystemColorRole;
ARGB: LongWord;
HasResolvedColor: Boolean;
end;
TXLSNearestIndexedColorMatch = record
InputARGB: LongWord;
ColorIndex: Integer;
PaletteSlot: Integer;
ARGB: LongWord;
DistanceSquared: Double;
ExactMatch: Boolean;
end;
TXLSIndexedColorUsageKind = (xicukFont, xicukFillForeground,
xicukFillBackground, xicukGradient, xicukBorder, xicukConditionalFormat,
xicukChart, xicukShape, xicukComment, xicukWorksheet, xicukOther);
ResolveIndexedColor、 NearestIndexedColor、 ScanIndexedColorUsage の各メソッドの基盤です。解決結果は、インデックス トークンが 4 つの TXLSIndexedColorKind のどのソースから来たかを、パレット スロット、システム カラー ロール、正規化された ARGB とともに報告します。最近傍一致はさらに 2 乗 RGB 距離と完全一致フラグを加え、使用状況の走査はパレット スロットをロックしているすべての利用者カテゴリにタグを付けます。ライブラリは、パレット ジェネレーションをキーとする内部 TXLSIndexedColorMatcher キャッシュを保持しています。 FindNearest は最近傍色のクエリにそこから答え、 UpdateSlot は 1 つのパレット スロットを修正するため、繰り返しの解決でもアロケーションは発生しませんA1 参照ヘルパー
function XLSA1CellRef(ARow, ACol: Integer): WideString;
function XLSTryParseA1CellRef(const ARef: WideString;
out ARow, ACol: Integer): Boolean;
function XLSTryParseA1RangeRef(const ARef: WideString;
out ARow1, ACol1, ARow2, ACol2: Integer): Boolean;
False を返します