HotXLS ドキュメント

クラシック XLS API の追加メンバー

このページでは、lxHandle、lxDataToXLS、および lxGridToXLS に属するクラシック XLS API の公開メンバーを説明します

IXLSWorkbook の計算プロパティ

property CalculationMode: LongWord;
property FormulaArrayMemoryLimit: Int64;
property EnableIteration: Boolean;
property MaxIterations: LongWord;
property MaxIterationChange: Double;
property RecalcOnSave: Boolean;
property UseFullPrecision: Boolean;
      
CalculationMode ファイルに保存されるワークブックの計算モードを制御します
FormulaArrayMemoryLimit MUNIT など生成された数式配列が確保するペイロードを制限します。デフォルトは 64 MiB で、Double 1 要素分未満の値はクランプされます
EnableIteration 循環参照の数式に対して反復計算を有効にします
MaxIterations 循環参照の強連結成分ごとの Gauss-Seidel 反復パスの最大回数
MaxIterationChange 循環参照コンポーネントが反復を停止するまでに許容する数値変化量の最大値
RecalcOnSave Excel がファイルを保存するときにワークブックの再計算を要求します
UseFullPrecision 数式の精度を完全に保持します。無効にした場合、依存セルが読み取る前に、数式および What-If データテーブルのキャッシュが実効的な表示桁数の精度に丸められます

数式入力の検証

property IXLSWorkbook.FormulaEntryPolicy: TXLSFormulaEntryPolicy;
function TXLSWorksheet.ValidateFormulaEntry(Row, Col: Integer;
  const Formula: WideString): TXLSFormulaEntryValidationResult;
      
共通の検証契約では、ワークシートの状態を変更することなく、空の入力、不明な関数、不明な名前、構文エラー、無効な座標、およびクラシック XLS ターゲットでは表現できない数式を分類します。詳細は 数式入力検証ポリシー を参照してください

IXLSWorkbook のレンダリング キャリブレーション

property RenderCalibration: TXLSRenderCalibration;
function CaptureRenderCalibration: TXLSRenderCalibration;
procedure ResetRenderCalibration;
function CreateRenderGeometry(ABackend: TXLSRenderGeometryBackend;
  ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
      
レコード全体の代入では、ワークブックを変更する前に 6 つのフィールドすべてが検証されます。CaptureRenderCalibration は 1 回の計測またはエクスポート操作のための独立した値スナップショットを返し、ResetRenderCalibration は標準の 1/1/1/1/100/96 の値に戻します
このランタイム専用の設定は XLS ファイルにシリアライズされず、ワークシートの行の高さや列の幅も変更しません
CreateRenderGeometry は現在のキャリブレーションを操作ごとに所有されるサービスへコピーし、そのキャッシュ識別子を現在のワークブック生成と選択されたバックエンドに紐付けます。後からワークブックのキャリブレーションを変更しても、既存のサービスは影響を受けません
範囲の AutoFit および TXLSPaginationModel.Build の各呼び出しは、ワークブックのキャリブレーションを 1 回だけ取得します。フィット後の寸法を意図的に書き込むのは AutoFit だけであり、ページ分割では保存されている行の高さと列の幅がすべて保持されます

IXLSWorkbook のドキュメントプロパティ

property Title: WideString;
property Subject: WideString;
property Author: WideString;
property Keywords: WideString;
property Comments: WideString;
property Company: WideString;
property Manager: WideString;
      
これらのプロパティはクラシック XLS ファイルに保存されたワークブックのサマリー情報フィールドを読み書きします

IXLSWorkbook の Close メソッド

function Close: Integer;
      
ワークブックオブジェクトを閉じ、クラシック XLS オブジェクトモデルが保持するワークブック固有のコンテンツを解放します

IXLSWorkbook のメタデータのみ読み込みプロパティ

property MetadataOnly: Boolean;
property SelectedSheets: TStringList;
property IncompleteLoad: Boolean;
      
MetadataOnly Open の前に設定すると、ワークブックのメタデータとシート記述子のみを読み込み、セルデータをスキップします
SelectedSheets ワークブックを開くときに読み込むシート名のリスト。空のリストの場合はすべてのシートを読み込みます
IncompleteLoad MetadataOnly または SelectedSheets を使用したためにセルデータがスキップされた場合、Open の後は True になります
MetadataOnly または空でない SelectedSheets を指定して開いたワークブックは保存できません。これらのオプションを外してワークブックを開き直すまで、Save はエラーを発生させます

TXLSColumnInfo の折りたたみ状態

property TXLSWorksheet._ColumnInfo: TXLSColumnInfoList;
property TXLSColumnInfo.Collapsed: Boolean;
property TXLSRowInfo.Collapsed: Boolean;
property TXLSColumnInfoList.Collapsed[Index: Integer]: Boolean;
      
Collapsed は BIFF の列アウトラインマーカーを、Hidden や OutlineLevel とは独立して公開します。リストのインデックスは 0 始まりのクラシック XLS 列インデックスです。存在しない列の読み出しは False となり、存在しない列に False を代入してもメタデータは確保されません。列書式のコピー、ワークシートのコピー、および保存と再読み込みのサイクルでも、このマーカーは保持されます
基盤となるストレージアクセサは、ワークブックを低レベルで検査できるように公開されています。TXLSRowInfo は MinCol と MaxCol(カバーする 1 始まりの列スパン)、CustomHeight と CustomFormat(明示的な高さまたは XF インデックスが保存されているかどうか)、そして XFIndexSet を報告します。TXLSColumnInfo.isEqual は 2 つの列メタデータエントリをフィールド単位で比較します
TXLSColumnInfoList は、境界と既定幅の診断のために ColCount、MinCol、MaxCol、StdWidth、MaxOutlineLevel を公開します。CalcMaxOutLineLevel はメタデータを直接編集した後にキャッシュされた最大アウトラインレベルを再計算し、CopyColFormat は 1 つの列エントリを別のインデックスへ複製し、DeleteCol はエントリを削除し、FindNextColToStore は BIFF COLINFO レコードの書き込みのために保存済みエントリを走査して、次のスパンを MinCol / MaxCol の out パラメータで報告します

TXLSWorksheet のアウトラインノードメソッド

function TryGetOutlineNode(AAxis: TXLSOutlineAxis; ANodeIndex: Integer; out ANode: TXLSOutlineNode): Boolean;
function SetOutlineNodeCollapsed(AAxis: TXLSOutlineAxis; ANodeIndex: Integer; ACollapsed: Boolean; AChildMode: TXLSOutlineChildMode = xocPreserve): Boolean;
procedure SetOutlineDisplayLevel(AAxis: TXLSOutlineAxis; ADisplayLevel: Integer; AChildMode: TXLSOutlineChildMode = xocPreserve);
      
これらのメソッドは、クラシックな行・列メタデータを共通のスパース アウトラインモデルに適合させ、アウトラインの方向から要求された集計ノードを導出し、未使用のワークシート座標を調べることなく、非表示と折りたたみの変更を圧縮して適用します
ANodeIndex は 1 始まりの物理的な集計行または集計列、ADisplayLevel は 1 始まりのアウトラインボタンの規約に従い、xocPreserve はデフォルトで入れ子の子の折りたたみマーカーを独立に保ちます
ノードのフィールド、子モード、例、計算量の保証については、スパース アウトライン ジオメトリ を参照してください

TXLSWorksheet のペインと印刷タイトルメソッド

function ThawPanes(Y, X: Single; RowTop, ColLeft: Word): Integer;
function SplitPanes(Width, Height: Single): Integer;
function UnsplitPanes: Integer;
function GetSelectedAreas(APane: TXLSPanePosition; out ActiveAreaIndex: Integer): TXLSSelectedAreas;
function SelectAreas(APane: TXLSPanePosition; const Areas: array of WideString; ActiveAreaIndex: Integer = 0): Boolean;
function TryGetWindowScroll(APane: TXLSPanePosition; out ARow, ACol: Integer): Boolean;
function ScrollWindow(APane: TXLSPanePosition; ARow, ACol: Integer): Boolean;
function RepeatRows(FirstRow, LastRow: Word): Integer;
function RepeatColumns(FirstCol, LastCol: Word): Integer;
      
ThawPanes、SplitPanes、および UnsplitPanes は分割ペインの状態を制御し、RepeatRows と RepeatColumns はワークシートの印刷タイトル行・列を設定します
GetSelectedAreas とペインを先に指定する SelectAreas のオーバーロードは、ワークシート ペイン選択 で説明されている共通の論理ペイン選択契約を提供します
同一ペインに対する連続した BIFF 選択レコードは 1 つの論理グループを形成し、編集されたグループは最大 1369 選択範囲ずつのチャンクで書き込まれます。ワークシートのコピーでは、すべてのペイングループが保持されます
行全体・列全体の構造編集では、順序を保った残存選択範囲とアクティブ領域の同一性を維持しながら、すべての有効なペイングループが再マッピングされます。後続・先行・境界セルへのフォールバックは決定論的に行われます
壊れた選択レコードや矛盾する選択レコードは不透明なまま扱われ、保存時にはバイト単位でそのまま再生されます。部分的にしか信頼できない型付き状態を公開する代わりに、xlsDiagnosticSelectionRecordInvalid が報告されます
TryGetWindowScroll と ScrollWindow は、上・左軸を Window2 に、下・右軸を Pane にマッピングする、1 始まりの共通 4 ペインスクロール契約を公開します

TXLSWorksheet の型付きデータ検証メソッド

function AddWholeNumberValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddDecimalValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddDateValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddTimeValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddTextLengthValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddCustomValidation(ARange: WideString; const AFormula: WideString): TDataValidation;
      
各ヘルパーは ARange に対して型付きデータ検証ルールを作成し、作成した TDataValidation インスタンスを返すことで、プロンプト・エラー・空白処理オプションを調整できます

TXLSWorksheet のピボットテーブルメンバー

property PivotTables: TXLSPivotTables;
function AddPivotTable(const SourceRangeA1: WideString; DestRow, DestCol: Integer; const Name: WideString): TXLSPivotTable;
function PivotSetDataFieldFormat(DataField: TXLSPivotDataField; const FormatStr: WideString): Word;
      
AddPivotTable を使用してソース範囲から型付きピボットテーブルを作成し、PivotTables と PivotSetDataFieldFormat で生成されたモデルを検査または書式設定します。詳細は クラシック XLS ピボットテーブル API を参照してください

IXLSRange の配列数式と境界メンバー

function SetArrayFormula(const Formula: WideString): Integer;
function XFIndex: Integer;
property FirstRow: Word;
property LastRow: Word;
property FirstCol: Byte;
property LastCol: Byte;
      
SetArrayFormula は範囲に配列数式を割り当てます。FirstRow、LastRow、FirstCol、および LastCol は 1 始まりの範囲境界を公開し、XFIndex は範囲の有効なクラシック XLS 書式インデックスを返します

IXLSRange の転送ヘルパー

procedure PasteFrom(SrcRange: TXLSRange; PasteMode: LongWord; CopyMode: Boolean);
procedure ShiftTo(Row: Word; Col: Byte);
procedure ExtendRange;
procedure ContractRange;
      
PasteFrom は選択した貼り付けモードを使用して別のクラシック XLS 範囲のセル内容を適用します。ShiftTo は範囲オブジェクトの位置を変更し、ExtendRange と ContractRange は範囲操作の前に格納された矩形を拡張または正規化します

IXLS の行・列範囲インターフェイス

interface IXLSRowsRange = interface(IXLSRange)
  property Item[Row: Integer]: IXLSRowRange;
  property Hidden: OleVariant;
  property Count: LongWord;
  procedure AutoFit(Columns: Boolean = False);

interface IXLSRowRange = interface(IXLSRange)
  property Item[Col: Integer]: IXLSColRange;
  property Hidden: OleVariant;
  property Count: LongWord;
  procedure AutoFit(Columns: Boolean = False);

interface IXLSColsRange = interface(IXLSRange)
  property Item[Col: Integer]: IXLSColRange;
  property Hidden: OleVariant;
  property Count: LongWord;
  procedure AutoFit(Columns: Boolean = True);
  procedure Group(Rows: Boolean = False);
  procedure UnGroup(Rows: Boolean = False);
  property OutlineLevel: Integer;

interface IXLSColRange = interface(IXLSRange)
  property Item[Row: Integer]: IXLSRowRange;
  property Hidden: OleVariant;
  property Count: LongWord;
  procedure AutoFit(Columns: Boolean = True);
  procedure Group(Rows: Boolean = False);
  procedure UnGroup(Rows: Boolean = False);
  property OutlineLevel: Integer;
      
IXLSRowsRange、IXLSRowRange、IXLSColsRange、および IXLSColRange は IXLSRange.Rows、IXLSRange.Columns、IXLSRange.EntireRow、および IXLSRange.EntireColumn によって返されます。これらは通常の IXLSRange 編集インターフェイスを維持しつつ、インデックス付きの行・列アクセス、非表示状態の制御、カウント、AutoFit、および範囲方向に応じたアウトライングループ化を追加します
property DisplayText: WideString;
      
DisplayText はクラシック XLS ハイパーリンクで Excel が表示する可視テキストを読み書きします。ターゲットアドレスやスクリーンヒントとは独立しています

TXLSWorksheets の ID マッピングプロパティ

property IndexByID[SheetID: Integer]: Integer;
property IDByName[SheetName: WideString]: Integer;
property NameByID[SheetID: Integer]: WideString;
      
これらの読み取り専用参照プロパティは、内部シート ID、現在のワークシートインデックス、および可視のワークシート名の間でマッピングを行います。現在のタブ順ではなく格納された識別子でシートを参照する数式、定義名、またはレコードを保持する際に便利です

TXLSWorksheet の SheetTypeRaw プロパティ

property SheetTypeRaw: Byte;
      
SheetTypeRaw はワークブックの読み込み・保存時にクラシック XLS の生の BoundSheet8.dt 値を保持するため、マクロ・VBA・ワークシート・ダイアログ・その他のシート種別レコードを標準ワークシートタブにフラット化することなくラウンドトリップできます

IXLSPageSetup の高度な印刷プロパティ

property PrintNotesAtEnd: Boolean;
property UseFirstPageNumber: Boolean;
property FirstPageNumber: Integer;
property PrintCellErrors: LongWord;
property PrintResolution: LongWord;
property PrintVResolution: LongWord;
property Copies: LongWord;
property HasSetupRecord: Boolean; read only
property PrinterSettingsInitialized: Boolean; read only
property PrinterDriverData: TBytes;
property HasPrinterDriverData: Boolean; read only
procedure ClearPrinterDriverData;
      
これらのプロパティは、末尾に印刷されるコメント、カスタム先頭ページ番号、印刷セルエラー表示、プリンター解像度、印刷部数などの高度なページ設定を保持します
HasSetupRecord は、読み込んだクラシック XLS ワークシートが BIFF の Setup レコードを含むかどうかを報告します。PrinterSettingsInitialized は、用紙サイズ、倍率、用紙方向、解像度、印刷部数がそのレコードで定義されているかどうかを報告します
未編集のワークシートを保存すると、Setup レコードの有無と既存レコードの内容がバイト単位で保持されます。ページ設定フィールドを変更すると必要に応じてレコードが作成され、プリンター依存のフィールドを変更するとプリンター設定が初期化されます
PrinterDriverData は BIFF の不透明な PLS プリンタードライバーペイロードを読み書きし、HasPrinterDriverData はペイロードの有無を判定し、ClearPrinterDriverData は型付きのページ設定フィールドを変更せずにペイロードを削除します
getter と setter はバイト配列をコピーするため、呼び出し元とワークシートのコピーがそれぞれ独立して所有します。クラシックのペイロードには必須の 2 バイト予約プレフィックスを含める必要があり、1 MiB を超えることはできません
SaveXLSWorkbookAsXLSX は、型付きのページ設定値と不透明なプリンタードライバーペイロードをそれぞれ独立して XLSX モデルへ引き継ぎます。ドライバー固有のバイト列に重複したプリンター既定値が含まれていても、型付きの標準フィールドが正となります

IXLSFont の文字セットプロパティ

property CharSet: Byte;
property Family: Byte;
      
CharSet と Family は、ロケール固有のフォントメタデータを保持する必要がある呼び出し元向けに、クラシック XLS フォントの文字セットバイトとファミリーバイトを公開します

TDataToXLS および TGridToXLS の Abort メソッド

procedure TDataToXLS.Abort;
procedure TGridToXLS.Abort;
      
実行中のデータセットまたはグリッドのエクスポートを完了前に停止する必要がある場合は、エクスポートイベントハンドラーから Abort を呼び出してください

クラシック XLS 参照ヘルパー関数

function GetCellRef(Cell: String; var Row, Col: Word): Integer;
function GetCellRange(CellRange: String; var StartRow, StartCol, EndRow, EndCol: Word): Integer;
function EncodeCellRef(Row, Col: Word): String;
function EncodeCellRange(StartRow, StartCol, EndRow, EndCol: Word): String;
function Width2Excel(Value: Single): Word;
function Excel2Width(Value: Word): Single;
function Height2Excel(Value: Single): Word;
function Excel2Height(Value: Word): Single;
function ColIndexToColName(Index: Integer): String;
function ColNameToColIndex(Name: String): Integer;
      
これらのヘルパーはクラシック A1 参照、範囲、列ラベル、行・列の寸法、およびクラシック XLS オブジェクトモデルで使用される Excel ストレージ単位を変換します