概要
![]() |
HotXLS Excel Read/Write Library は、Delphi & C++Builder 向けの高性能 Excel 読み書きコンポーネントです
Microsoft Excel や Office をマシンにインストールすることなく、新しい Excel スプレッドシートを作成したり、
既存の XLS および XLSX ワークブックを読み取ったり変更したりすることができます
HotXLS は完全に Object Pascal で記述されており、バイナリおよび OOXML レベルで Excel ファイルを直接読み書きします
そのため COM/OLE オートメーションのオーバーヘッドがなく、Office のライセンスや存在への依存もありません
HotXLS は Delphi および C++Builder XE5 から 13 Florence をサポートしています
クラシック XLS のカラーフォーマットは意図的にパレットベースのままとなっています。ThemeColor / TintAndShade の設計判断については Classic XLS カラーモデルを参照してください
|
デュアルファサードアーキテクチャ
HotXLS は、レガシー XLS コードと新しい XLSX コードがリファクタリングなしに共存できるよう、
2 つの並行するファサードユニットを公開しています
lxHandle |
Excel 97–2003 BIFF8 形式(.xls)のプライマリファサード。HTML、RTF、CSV、TSV
エクスポートも含みます。既存のすべてのユーザーコードはこのユニットをそのまま使用し続けることができます。エントリポイント:
TXLSWorkbook、TXLSWorksheet、IXLSWorkbook、IXLSRange
|
lxHandleX |
Excel 2007+ OOXML 形式(.xlsx)および OpenDocument Spreadsheet
(.ods)の読み書き用プライマリファサード。XLSX 固有の動作が BIFF コードパスに後付けされないよう、
独自のワークブックおよびワークシート型を提供します。エントリポイント:
TXLSXWorkbook、TXLSXWorksheet、TXLSXCell
|
両ファサードは同じ数式エンジン、同じ Unicode サポートレイヤー、同じエクスポートパイプラインを共有しています
lxHandleX が公開するクラス階層の全体については XLSX ファサード概要を参照してください
クイックスタート
以下のコードスニペットは、1 つのワークシートを持つワークブックを作成し、
セルに値を書き込む最小限のコードを示しています。
クラシック XLS(lxHandle)
uses lxHandle;
var
Book: IXLSWorkbook;
ws: TXLSWorksheet;
begin
Book := TXLSWorkbook.Create;
// ワークシートを追加して名前を付ける
ws := Book.Sheets.Add;
ws.Name := 'Sheet1';
// A1 記法を使ってセルに値を書き込む
ws.Range['A1'].Value := 'Hello';
ws.Range['B1'].Value := 42;
ws.Range['C1'].Formula := '=B1*2';
// 基本的な書式を適用する
ws.Range['A1'].Font.Bold := True;
ws.Range['A1'].Interior.Color := clYellow;
Book.SaveAs('output.xls');
end;
XLSX(lxHandleX)
uses lxHandleX;
var
Book: TXLSXWorkbook;
ws: TXLSXWorksheet;
cell: TXLSXCell;
begin
Book := TXLSXWorkbook.Create;
try
ws := Book.Sheets.Add('Sheet1');
// 文字列と数値を書き込む
ws.Cells[1, 1].Value := 'Product';
ws.Cells[1, 2].Value := 'Price';
ws.Cells[2, 1].Value := 'Widget';
ws.Cells[2, 2].Value := 9.99;
// 通貨の数値書式を適用する
cell := ws.Cells[2, 2];
cell.NumberFormat := '$#,##0.00';
Book.SaveAs('output.xlsx');
finally
Book.Free;
end;
end;
両ファサードを 1 つのデモプロジェクトで網羅する広範なウォークスルーについては、
API ツアーデモを参照してください
機能
ファイル I/O とストリームのサポート
既存の Excel ファイルの読み取り、新規または既存の Excel ファイルの書き込み、
クラシック XLS パスワード保護および XLSX 暗号化保存ワークフローの処理、
そしてワークブック全体を読み込まずに XLS および XLSX ファイルやストリームからシート名を素早く一覧表示する機能を提供します
IXLSWorkbook.OpenCSV を通じて CSV をワークブックとして開くことがサポートされています
セル値と数式
数値、文字列、日付/時刻、ブール値、数式など、すべてのネイティブ Excel 型のセル値を読み書きできます
組み込みの計算エンジンは、クラシック XLS と XLSX の両ワークブックで数式を評価し、以下をサポートします
- テキスト関数(
LEFT、MID、TRIM、SUBSTITUTE、…) - 日付および営業日関数(
DATE、NETWORKDAYS、WORKDAY、…) - エンジニアリングおよび基数変換関数(
BIN2DEC、HEX2DEC、…) - ビット演算関数(
BITAND、BITOR、BITXOR、…) - 統計および集計関数(
AVERAGE、SUMIF、COUNTIFS、…) - 数学関数(
ROUND、MOD、POWER、…)
OnUserFunction コールバックにより、実行時にカスタムまたはサポートされていないワークシート関数を処理できます
シグネチャと例については OnUserFunction コールバックを参照してください

セルの書式設定
セルの外観属性への完全なアクセス:
- フォント — 名前、サイズ、色(RGB またはテーマカラー + ティント)、太字、斜体、下線、 取り消し線、上付き、下付き、シャドウ、アウトライン
- 配置 — 水平・垂直配置、テキストの向き(角度)、インデントレベル、 折り返し、縮小して表示、読み取り順序(RTL/LTR)
- 罫線 — 4 辺すべてと対角線、線のスタイル、太さ、RGB / テーマカラー
- 塗りつぶし(フィル) — 単色塗りつぶし、パターン塗りつぶし、TintAndShade を含む テーマカラー対応の前景色および背景色
- 数値書式 — 日付、時刻、通貨、パーセンテージ、指数表記用の組み込みおよびカスタム書式文字列
- コメント / 注釈 — セルコメントの追加、読み取り、スタイル設定
範囲操作
IXLSRange(クラシックファサード)と TXLSXRange(XLSX ファサード)は、
豊富な範囲操作を提供します
- セルの結合・結合解除、任意のセルの結合領域へのアクセス
- シフト方向制御を伴う範囲のコピー、移動、挿入、削除
- アウトライン/折りたたみビュー用の行または列のグループ化・グループ解除
- セルの内容に合わせた行の高さと列の幅の自動調整
- 組み込みの名前付きセルスタイルの適用(
ApplyBuiltinStyle) - 複数領域の選択(
TXLSWorksheet.SelectAreas) - バッチセル処理のための ForEachCell 反復コールバック
ワークシート機能
ワークシートレベルの制御には以下が含まれます:
- シート名、タブの色、表示設定(非表示 / 完全非表示)、インデックスベースのナビゲーション
- 権限単位での粒度を持つシート保護、ワークブックレベルの保護
- ウィンドウ枠の固定、分割ウィンドウ、スクロール位置
- 条件付きオートフィルターの範囲と抽出条件、リストデータ検証ルール
- 条件付き書式:カラースケール(2 色および 3 色)、データバー、アイコンセット
- ワークシート全体でのテキストの検索と置換
- 表示オプション:グリッド線の色、数式表示モード、ゼロの表示、見出しの表示、 右から左への表示、アウトライン記号の表示、ズームレベル
- 構造化テーブル(
TXLSTable/TXLSXTable):ヘッダー行と縞模様行を持つ Excel テーブルの追加、アクセス、スタイル設定 - グラフ:
TXLSWorksheetsAddChartSheetおよびTXLSXChartを通じた グラフシートと埋め込みグラフの追加
ハイパーリンクと名前付き範囲
IXLSHyperLinks を通じてハイパーリンク(URL、mailto、ワークブック内セル参照)を追加・読み取りできます
IXLSNames / TXLSXDefinedNames を通じて、ワークブックおよびワークシートスコープで
名前付き範囲を定義・解決できます。名前付き範囲は数式で使用でき、
RefersToRange でセル範囲に逆解決できます
画像と図形
TXLSShapes.AddPicture / TXLSXWorksheet.AddImage を使用して、
ラスター画像(BMP、JPG、PNG、GIF)をワークシートに埋め込みます
TXLSShapes.AddTextBox を通じてクラシック XLS にスタンドアロンのテキストボックスを作成します
BIFF8 描画で Excel が作成した OfficeArt コネクターおよびソルバーのルールを保持し、
高度な描画ワークフロー向けに TXLSShape.OfficeArtOptions で生の図形 FOPT オプションを公開します
ページ設定と印刷
IXLSPageSetup を通じて印刷レイアウトへの完全なアクセス:
- 用紙サイズ(A4、Letter、Legal など多数、PaperSize を参照)
- 向き(縦 / 横)、余白、水平・垂直中央揃え
- Excel 書式コード付きのヘッダーおよびフッター文字列(太字、斜体、ページ番号、日付など、 ヘッダー/フッター書式コードを参照)
- 手動の水平・垂直改ページ
- ページ数に合わせた縮小印刷、拡大縮小率、印刷範囲、印刷タイトル(行/列の繰り返し)
- 下書き品質、白黒印刷、グリッド線の印刷、見出しの印刷、メモの印刷
エクスポート形式
ワークブック全体、個別ワークシート、または任意のセル範囲を以下の形式にエクスポートできます:
- HTML — プレビューやメールワークフロー用の完全なドキュメントまたはインラインテーブルフラグメント
TXLSHTMLExportおよびTXLSXHtmlExportOptionsで制御可能 - RTF — ワードプロセッサへのインポート用リッチテキスト
- CSV — 区切り文字とエンコードを設定可能なカンマ区切り値
- TSV — タブ区切り値
- ODS —
lxHandleXファサードによる OpenDocument Spreadsheet
データベースとグリッドのエクスポート
TDataToXLS または
TGridToXLS コンポーネントを使用して、
TDataSet 互換のデータセットや TDBGrid を直接 Excel、HTML、RTF にエクスポートします
どちらのコンポーネントも AfterCell、AfterRow、AfterTitle、
AfterGroup イベントを発生させてきめ細かな出力制御を可能にし、
複数レベルのグループ化フィールドをサポートします
VBA プロジェクトの保持
HotXLS は、マクロ有効ワークブックのラウンドトリップ時に VBA プロジェクトのペイロードを保持します
TXLSVBAProject および TXLSVBAModule を通じて読み取り専用のモジュール検査が可能です
IXLSWorkbook.HasVBAProject でペイロードを検出し、
LoadVBAProjectFromFile / SaveVBAProjectToFile でファイル間での転送ができます
Unicode と国際化テキスト
すべての文字列処理は Unicode ネイティブです。HotXLS は、CJK、アラビア語、ヘブライ語、タイ語、
その他のスクリプトを含むあらゆる言語で作成された Excel ファイルを、
正しい双方向テキストと読み取り順序サポートにより読み書きします

ピボットテーブル(クラシック XLS)
TXLSWorksheet.AddPivotTable を使用してソース範囲からピボットテーブルを作成し、
フィールドの配置とデータフィールドの数値書式を設定し、
TXLSWorksheet.PivotTables を通じてピボットモデルを検査できます
フィールドとフィルターの詳細については Classic XLS ピボットテーブル API を参照してください
利点
| No Office dependency | XLS および XLSX ファイルをバイナリレベルで直接読み書きします。Microsoft Excel や Office を インストール、ライセンス取得、または実行する必要はありません。これにより COM/OLE オートメーションの オーバーヘッドが排除され、Office 相互運用によるスレッド制限を回避し、 デスクトップ Office のインストールが非現実的なサーバーサイドやサービスコンテキストでも HotXLS を使用できます |
| High performance | BIFF8 および OOXML パーサーは、ホットパスで中間 XML DOM 割り当てを行わない ネイティブ Object Pascal で記述されています。数十万行を持つ大規模なワークブックも 低いピークメモリで読み書きできます。共有文字列の重複排除と共有数式の圧縮が 自動的に適用され、ファイルサイズを小さく保ちます |
| OLE migration path | クラシックファサードの API サーフェス(ワークブック、ワークシート、範囲、フォント、罫線、 塗りつぶし、ページ設定)は、OLE オートメーションで馴染みのある Excel オブジェクトモデルを ほぼ踏襲しています。これにより、既存の OLE ベースのプロジェクトの移行が容易になります COM 呼び出しを HotXLS 呼び出しに置き換え、Office への依存を削除し、 ネイティブパフォーマンスを得ることができます |
| Dual-facade design |
レガシー XLS コードは lxHandle に対して変更なくコンパイルおよび実行し続け、
新しい XLSX コードはより豊富な lxHandleX ファサードを使用します
一度に 1 つのファイル形式を移行することが安全かつ段階的に行えます
|
| Formula engine included |
組み込みのマルチパス計算エンジンが、Excel による再計算を必要とせずに
最も一般的なワークシート関数を処理します。カスタム関数は
OnUserFunction コールバックを通じて処理されます
|
| Easy to use |
ドロップイン Delphi コンポーネント(TDataToXLS、TGridToXLS)は、
一般的なエクスポートタスクにコードを必要としません。フルーエントな範囲 API は
A1 記法、R1C1 記法、ゼロベースの行/列インデックスをサポートします
|
| Thread-safe file I/O |
共有 Office プロセスが存在しないため、複数の TXLSXWorkbook インスタンスを
同期なしに独立したスレッドで並行して作成・保存でき、
HotXLS をマルチスレッドレポート生成サーバーに適したものにしています
|
互換性
HotXLS は以下の RAD Studio バージョンと互換性があります:
| Delphi | XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, 11 Alexandria, 12 Athens, 13 Florence |
| C++Builder | XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, 11 Alexandria, 12 Athens, 13 Florence |
| Target platforms | Windows 32 ビットおよび 64 ビット |
| Excel file formats | XLS(BIFF8、Excel 97–2003)、XLSX(OOXML、Excel 2007+)、ODS(OpenDocument 1.2) |
| Export-only formats | HTML、RTF、CSV、TSV |
関連項目
- XLSX ファサード概要(lxHandleX) —
lxHandleXが公開するクラス階層全体と XLSX/ODS 固有の API メンバー - API ツアーデモ — HotXLS を初めて学ぶ際に最初に実行するデモ
- IXLSWorkbook — クラシック XLS ワークブックインターフェースリファレンス
- TXLSWorksheet — クラシック XLS ワークシートクラスリファレンス
- IXLSRange — 範囲インターフェース:セルアクセス、書式設定、操作
- TXLSXWorkbook — XLSX ワークブッククラスリファレンス
- TXLSXWorksheet — XLSX ワークシートクラスリファレンス
- TGridToXLS — ドロップイン DBGrid から Excel へのエクスポートコンポーネント
- TDataToXLS — ドロップイン データセットから Excel へのエクスポートコンポーネント
- OnUserFunction コールバック — カスタムワークシート関数の拡張ポイント
- Classic XLS カラーモデル — パレットベースのカラーとテーマカラーの設計根拠
- Classic XLS 追加 API メンバー — 計算プロパティ、 ドキュメントプロパティ、ピボットテーブルなど
- サンプル — サンプルプロジェクトの概要
- 発注書サンプル — ソースコード付きの完全な XLS 作成例
