HotXLS ドキュメント

TXLSWorkbookViewer コンポーネント

TXLSWorkbookViewerは、Microsoft ExcelやCOMオートメーションなしで両方のワークブックエンジンからワークシートを表示するVCLコントロールです

ワークブックソース

ナビゲーション

コントロールは、水平および垂直スクロールバー、マウスホイールスクロール、マウスドラッグ、Shiftによる範囲拡張、矢印キー、Home、Page Up、Page Down、およびTabナビゲーションを提供します

GoToCellは行と列を選択し、SelectRangeは矩形を選択し、NextWorksheetとPreviousWorksheetはシートを切り替え、SelectedRangeは正規化されたA1参照を公開します

編集と計算

EditableをTrueに設定すると、F2、ダブルクリック、印字キー、Delete、数式バーによる編集が可能になります。保護されたワークシートのロック済みセルは読み取り専用のままです

BeginEdit、CommitEdit、CancelEditはインプレース エディターを制御し、EditSelectedCellとFormulaBarTextは外部の数式バーに対応します

確定された編集は、数式、真偽値、整数、浮動小数点値、テキスト、空入力を認識し、依存する数式を再計算して、条件付き書式とページ分割のキャッシュを無効化します

UndoとRedoはO(1)の上限付き循環履歴を使用します。UndoLimitで容量を制御するか、0に設定すると履歴を無効にできます

DeleteまたはClearSelectedRangeは選択範囲を1つのトランザクションとしてクリアします。Ctrl+CとCopySelectedRangeはタブ区切りのUnicodeテキストをコピーし、Ctrl+V、PasteSelectedRange、PasteTextは選択範囲の左上隅に矩形テキスト ブロックを1つの undo エントリで貼り付けます

保護と構造の事前チェックは、変更前にブロックされた範囲全体を拒否します。undoとredoは、どちらのモデルでもネイティブのリッチ テキスト、数式キャッシュ、スタイル、不在セルを保持し、履歴操作のたびに同じ保護チェックが行われます

既存の配列数式、データテーブル領域、結合と交差する複数セルの貼り付けは拒否されます。単一の結合アンカー編集と結合全体のクリアは結合ジオメトリを保持し、部分的な結合範囲のクリアは拒否されます

共有のTXLSWorkbookEditHistoryエンジンは、コントロールなしでインスタンス化することもできます。座標、有効期間、計算、操作上限のルールについては、ヘッドレス編集トランザクションを参照してください

数式参照の選択

ホストの数式エディタがワークシート参照を収集している間にBeginReferencePickを呼び出します。EndReferencePickが呼ばれるまで、選択が変わるたびに現在のA1範囲を伴ってOnReferencePickが発生します

レンダリング

ビューアは、各ワークシートの列幅、行高さ、およびフォーマットされた表示テキストを使用し、従来の単色塗りつぶしとフォントスタイルをレンダリングし、設定可能なヘッダー、グリッド線、および選択色を提供します

XLSXワークシートの場合、ビューアは条件付き塗りつぶし、フォントの色と強調、表示形式、カラースケール、方向性の正負のデータバー、グラデーション、罫線、軸、非表示の値、およびすべての組み込みアイコンセットファミリーもレンダリングします

ビューアはアクティブなワークシート用に準備済みの条件付き書式エバリュエーターを1つキャッシュするため、スクロールや選択の再描画でワークブックを再スキャンすることはありません。アタッチされたワークブックの値、数式、範囲、条件付きルールを変更した後は、RefreshConditionalFormatsを呼び出します

XLSXレンダリングは、空の座標をインデックス化することなくスパース セルと区間スタイルのオーバーレイをチェックするため、スクロールしても可視の空白セルが実体化したり、ワークシートのストレージが拡大したりしません

印刷プレビュー

PrintPreviewをTrueに設定すると、PDFのページ ジオメトリとページ数計算で使われる共有のTXLSPaginationModelを通じて、アクティブなワークシートが表示されます

PreviewPageは1から始まり、PreviewPageCountに制限されます。プレビューが有効な間、矢印キー、Page Up、Page Down、Home、End、マウスホイール、垂直スクロールの各操作で論理ページを移動できます

PaginationModelはキャッシュされたモデルを公開し、SavePreviewPageAsMetafileは選択された論理ページをEMFとして書き込み、RefreshPaginationは値、寸法、印刷設定、改ページ、タイトル、図形の変更後にキャッシュを再構築します

イベント

Delphi example

Viewer := TXLSWorkbookViewer.Create(Self);
Viewer.Parent := Self;
Viewer.Align := alClient;
Viewer.XlsxWorkbook := Workbook;
Viewer.Editable := True;
Viewer.SelectRange(2, 1, 5, 3);
Caption := Viewer.SelectedRange;
Viewer.GoToCell(2, 3);
Viewer.FormulaBarText := '=A1*2';
Viewer.Undo;
Viewer.Redo;
Viewer.RefreshConditionalFormats;
Viewer.PrintPreview := True;
Viewer.PreviewPage := 1;
Viewer.SavePreviewPageAsMetafile('Preview.emf');
Viewer.GoToCell(12, 4);
Caption := Viewer.WorksheetName + ': ' + Viewer.SelectedCellText;

ファイルを開く操作とワークシート コントロールを備えた、実行時に作成される完全なビューアーの例はDemo\Delphi\WorkbookViewerを参照してください