HotXLS ドキュメント

TXLSForwardReader クラス

TXLSForwardReader は、完全なワークブック オブジェクト モデルを構築することなく、クラシック XLS、最新の XLSX、ODS、CSV、TSV 入力に対して、単一の射影されたコールバック駆動型サーフェスを提供します。TXLSRowCursor が使用するのと同じ行カーソル バックエンドを適応させるため、プッシュ型とプル型の読み取りが形式・射影・数式のセマンティクスを共有します

入力形式

TXLSForwardFormat は自動検出を選択するか、XLS、XLSX、ODS、CSV、TSV のいずれかの解析を強制します

ReadFile は名前付きソースを開き、ReadStream は呼び出し側の現在のストリーム位置から読み取り、戻り時にその位置を復元します

射影と行の境界

IncludeColumn は、1 から始まる列を定数時間の射影セットに追加し、ClearColumnProjection は全列出力を復元し、HasColumnProjection はプッシュダウンが有効かどうかを報告します

FirstRow と LastRow は、値の変換とコールバックのディスパッチの前に 1 から始まる行の境界を適用し、パーサーが要求された区間の後で停止できるようにします

コールバックと値の変換

OnSheet各ワークシート名を受け取り、シートをスキップするか、読み取り全体を中止できます
OnCell射影されたすべてのセルについて、行、列、スタイル インデックス、正規化されたキャッシュ値、数式の有無、数式テキストの利用可否を受け取ります
IncludeFormulaText数式の有無とキャッシュ値を保持したまま、数式テキストの蓄積を選択的に抑制します
DetectDatesワークブックの数値書式を使用して日付と時刻の値を識別します
DetectTextTypes曖昧でない場合、CSV および TSV フィールドをサポートされているスカラー型に変換します
PreserveRichTextソース形式がサポートする場合、書式付きランと音声ペイロードを保持します
ValueSeparator形式検出が適切でない場合に、テキスト フィールドの区切り文字を上書きします

HasFormula は通常の値では false になり、FormulaTextAvailable は Formula に信頼できるテキストが含まれる場合にのみ true になります。クラシック XLS では、前進読み取りパスが BIFF トークンを逆コンパイルしないため、数式テキストは利用不可として、キャッシュされた数式結果が報告されます

完了状態

CellCount はディスパッチされたセルを報告し、Aborted は呼び出し側のキャンセルと正常な完了を区別します

ClassicBytesRead はクラシック XLS(BIFF)パーサーが消費した合計バイト数を報告し、ClassicPeakBufferedBytes は同時に保持したバッファリング バイト数のピークを報告します。どちらもクラシック XLS パス向けの読み取り専用診断情報です

PeakRowBufferedBytes は共有バックエンドが保持した最大の推定論理行ワーキング セットを報告し、SheetPassesStarted はアクティブになったワークシート パスの回数を数えます。OnSheet で拒否されたシートはワークシート パートを開かず、カウントも増やしません

OnSheet と OnCell で渡されるシート インデックスは、サポートされるすべての形式で一貫して 1 から始まります

例

Reader := TXLSForwardReader.Create;
try
  Reader.FirstRow := 2;
  Reader.IncludeColumn(1);
  Reader.IncludeColumn(5);
  Reader.OnSheet := ReadSheet;
  Reader.OnCell := ReadCell;
  Reader.ReadFile('large-input.xlsx', xffAuto);
finally
  Reader.Free;
end;

ストリーミング API の選択

1 つのアプリケーション パスで複数のコールバック駆動型形式を受け入れる必要がある場合は TXLSForwardReader を、XLSX 固有のレイアウトと並列ワークシート イベントには TXLSDirectReader を、同じ共有デコード セマンティクスをプル駆動の行反復で利用する場合には TXLSRowCursor を使用します

関連項目