HotXLS Docs

TXLSForwardReader 类

TXLSForwardReader 为经典 XLS、现代 XLSX、ODS、CSV 和 TSV 输入提供一个投影化的、回调驱动的统一表面,无需构建完整的工作簿对象模型;它适配 TXLSRowCursor 为经典 XLS、现代 XLSX、CSV 和 TSV 输入提供一个单一的、带投射的回调驱动表面,而无需构建完整的工作簿对象模型

输入格式

TXLSForwardFormat 选择自动检测或强制 XLS、XLSX、CSV 或 TSV 解析

ReadFile 打开一个命名源, ReadStream 从调用方的当前流位置读取,并在返回时恢复该位置

投射与行边界

IncludeColumn 将基于 0 的列添加到恒定时间的投射集合中, ClearColumnProjection 恢复全列输出, HasColumnProjection 报告下推是否处于活动状态

FirstRow 和 LastRow 在回调分发之前应用基于 1 的行边界,允许解析器在请求的区间之后停止

回调与值转换

OnSheet接收每个工作表名称,并且可以跳过某个工作表或中止整个读取
OnCell接收每个投射单元格的行、列、样式索引、规范化的缓存值、公式存在性以及公式文本可用性
IncludeFormulaText保留公式存在性和缓存值,同时可选地抑制公式文本的累积
DetectDates使用工作簿数字格式识别日期和时间值
DetectTextTypes在无歧义的情况下将 CSV 和 TSV 字段转换为受支持的标量类型
PreserveRichText在源格式支持的情况下保留格式化的文本段和拼音负载
ValueSeparator在格式检测不适用时覆盖文本字段分隔符

HasFormula 为 false; FormulaTextAvailable 只有在 Formula 包含可靠文本时才为 true。经典 XLS 会报告缓存的公式结果但公式文本不可用,因为 forward 路径不反编译 BIFF token

完成状态

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

Use TXLSForwardReader when one application path must accept several callback-driven formats, TXLSDirectReader for XLSX-specific layout and parallel worksheet events, or TXLSRowCursor (当需要通过拉取式行迭代获得相同的共享解码语义时)

另请参阅