适用于 RAD Studio 的 Excel 库

无需 Office 自动化即可读写、设置样式和导出 Excel 工作簿

HotXLS 是供 Delphi 和 C++Builder 应用使用的原生 Object Pascal 库,可直接处理经典 XLS 工作流和当前的 XLSX facade,套件包含工作簿 API、工作表编辑、丰富格式、导出辅助工具、示例与离线文档

工作簿快照 XLS + XLSX
值
样式
导出
数值
边框
CSV
日期
主题颜色
HTML
公式
验证
RTF

当前功能概览

当前 HotXLS 产品线结合原始 XLS facade 与专用 XLSX 引擎,遗留代码可继续使用经典 API,而新项目可直接面向 OOXML 功能

原生工作簿 I/O

可直接从 Delphi 或 C++Builder 代码创建、打开、修改和保存 Excel 工作簿,无需安装 Microsoft Excel、COM 自动化或外部电子表格进程

通过 SaveAs(FileName, xlsxOpenXMLTemplate) 或对应的流重载即可保存无宏的 XLTX 模板,流式输出同样支持;默认保存格式保持不变

经典 XLS facade

面向 Excel 97-2003 .xls 工作簿的成熟 API,覆盖完整经典对象模型,提供高保真 BIFF8 往返,并可读取旧版 Excel 2.0/3.0/4.0(BIFF2-4)文件的值

  • 索引化的公式输出区间避免了重建大型依赖图时对先行行的反复扫描,包括对数组输出的引用和跨工作表的依赖
  • 经典 XLS 保存会保留已加载或已计算的公式缓存,包括共享公式根与数组公式根;缺失的缓存保留计算回退,而显式 Recalculate 可刷新既有值
  • 标量定义名称引用会在公式单元格处与单行或单列范围相交,而聚合和查找类范围参数保留完整范围;重新计算会避免误判的范围循环,优先采用已定稿的查找缓存,并在整数与浮点混合运算中保留浮点精度
  • XLSX 往返保留动态打印区域公式、带限定符的范围并集以及必需的零值语音字体索引;生成和保留的部件共享唯一的内容类型声明,而自定义属性和不透明根关系保留各自的关系 ID
  • 经典 XLS 在显式设置相应页边距之前,一直保留缺失的已导入页边距记录,也不会改变新工作簿的默认页边距输出
  • AGGREGATE 可独立处理未缓存的错误和嵌套选择,选项 0 到 7 分别具有独立的引用语义和计算数组语义
  • XLSX 往返保留未改动的图表 XML 和图表锚点偏移、条件格式的字体名称、字号、字体方案、显式样式标志和 RGB 颜色,以及只设置页边距时保持未指定的页面方向
  • 完整对象模型:工作簿、工作表、范围、公式、格式、图像、超链接、定义名称、保护、页面设置和报表导出
  • 经典列元数据独立于隐藏状态和分组级别公开大纲折叠标记,并可在原始 XLS 往返、列格式复制和工作表复制中保留这些标记
  • 经典页面设置公开 HasSetupRecord 和 PrinterSettingsInitialized,逐字节保留未触及的 BIFF Setup 记录,使不存在的记录仍保持不存在,并且只在其 setter 需要时初始化依赖打印机的字段
  • XLS 到 XLSX 以及 XLSX 到 XLS 的转换可独立携带类型化页面设置和不透明打印机驱动字节,使标准字段优先于重复的私有默认值,并在写入目标文件前拒绝无法用 BIFF8 表示的设置
  • 经典 XLS 与 XLSX 工作簿提供一致的 SaveExternalLinkValues 和 UpdateLinks 策略,既可省略已缓存的外部工作簿值而不删除链接定义或内存缓存,也能无损保留未触及的无效源声明,跨格式转换保留合法策略值,更新偏好绝不触发文件或网络访问
  • XLSX 工作簿提供精确的 Web Add-in 任务窗格检测、计数和原子移除,移除前会验证有界的内部关系闭包,保留由其他关系共享的任何部件,删除自有关系部件和过时内容类型条目,阻止压缩源副本复活,并保持幂等;经典 XLS 和 ODS 无需扫描包即可报告该操作不受支持
  • 经典 XLS 与 XLSX 工作表通过 TXLSPanePosition 提供一致的窗格感知选择和从 1 开始的滚动方法;TryGetWindowScroll 与 ScrollWindow 将共享的上、下、左、右轴映射到各格式原生的两级视图状态,并在保存、打开和工作表复制中保留,缺失窗格或无效坐标会被原子拒绝;选择快照保持有序、可重叠且由调用方拥有,整行或整列结构编辑会重新映射每个窗格,并以确定性的存活区和边界单元格回退保留活动区域标识,大区域操作仍为摊销线性;经典 XLS 还会聚合连续选择记录、保留未触及或无效的记录体,通过 xlsDiagnosticSelectionRecordInvalid 报告畸形分组,并将超过 1369 个区域的选择分块
  • 引擎无关的 lxOutline 单元根据已排序稀疏跨度构建行或列大纲几何,在 O(log n + k) 时间发现摘要在前或摘要在后的节点,并为节点折叠、显示级别变更、嵌套子项保留和递归子项状态更新创建压缩、幂等的计划,无需扫描未使用的工作表坐标;两个工作表引擎公开相同的节点查询和控制方法,而 OpenDocument 分组保留原生显示状态并转换为 XLSX 摘要节点标记
  • 经典 XLS 与 XLSX 工作簿针对公共颜色索引、BIFF icv 值和 OOXML 索引颜色提供同一无副作用的 ResolveIndexedColor 契约;调色板、自动、系统和无效 token 始终可区分,边框索引零保留其未指定含义,ARGB 输出会规范化,操作系统颜色仅通过显式调用方回调解析
  • 两个工作簿引擎都公开无副作用的 NearestIndexedColor 查询,并以具备变更感知能力的 OKLab 缓存为后盾;它只搜索 56 个物理 BIFF 调色板条目,返回公共和物理索引、距离及精确匹配元数据,拒绝部分 alpha,并将等距离并列解析为最低公共索引
  • 两个工作簿引擎都公开确定性、无副作用的 ScanIndexedColorUsage 清单,覆盖全部 56 个物理调色板槽位,包含规范化 ARGB 值、定义和引用计数、使用者类型,以及样式、稀疏单元格、工作表对象、图表、批注和条件格式中的保留锁,且不实例化未使用单元格
  • 两个工作簿引擎都提供无变更的 BuildBiffPalettePlan 预览,保护索引颜色使用者,按渲染频率汇总直接和解析后的主题颜色,保留现有精确匹配,通过 OKLab 以确定性方式映射颜色,并在不改变工作簿或保存行为的前提下报告源标识、槽位变更、精确覆盖率、加权误差和溢出量化
  • 两个工作簿引擎都可通过 ApplyBiffPalettePlan 验证并原子应用当前 56 槽位计划,在任何变更前拒绝过期或被篡改的输入并重建一次感知匹配器;经典工作簿另提供明确的 BiffPaletteSavePolicy,默认保留历史输出,其优化模式仅适用于 BIFF8,保存失败或取消时恢复原始调色板
  • 两个工作簿引擎都公开经过验证的 TXLSRenderCalibration 值,提供宽度、高度、多行间距、单元格边距、屏幕缩放和测量 DPI 控制;赋值为原子操作,捕获会返回独立的操作快照,默认值确定,并且该运行时设置绝不序列化或自行调整工作表几何
  • 两个工作簿引擎都会创建操作自有的 IXLSRenderGeometry 服务,其不可变校准、工作簿代际、后端、完整字体签名、换行宽度和文本共同构成有界本地度量缓存标识;共享的 GDI 测量以及像素、点、列宽、MDW 和可用单元格宽度转换消除了 AutoFit 的进程全局 DPI 和基础宽度缓存,同时使屏幕缩放不参与输出坐标缩放
  • 经典 XLS 和 XLSX 的 AutoFit 为每个操作捕获一个渲染几何快照,并应用经过校准的字体测量、换行、行距和单元格边距;分页会在每次构建时捕获同一工作簿本地几何,因此默认页面大小稳定,之后更改校准需要显式重建,页面计算也绝不写入已存储的行高或列宽
  • PDF、SVG、位图、打印预览和工作簿查看器的分页各自识别其渲染后端,并在完整操作中保留不可变的工作簿校准;共享页面文本适配和 SVG 换行使用含完整字体样式和字符集标识的操作本地有界度量缓存,而不是进程全局测量对象
  • TDataToXLS 数据集导出可只包含选定字段或排除敏感字段,同时保持标题、数据行、回调和列宽对齐
  • 自动 XLSX 动态数组会调整大小并拥有自己的 spill 单元格,用 #SPILL! 保留用户设置的阻碍,支持 A1# 和一元 @,并在重新打开后恢复所有权;固定 CSE 公式逐元素求值原始区域算术
  • 多数组 MAP 和计算数组 FILTER 保留逐元素错误,XLSX 富值元数据则保留类型化的 #SPILL! 和 #CALC! 错误
  • GetConversionReport 在不变更模型的情况下清点已知的目标格式损失,可选启用的 SaveAsChecked 可在写入前拒绝它们;显式 xlsxOpenXMLMacroEnabledTemplate 输出会创建 XLTM 包并保留现有 VBA
  • 调用方提供的 TXLSQueryTableProvider 实现以事务方式刷新固定架构的查询表数据,调整表格和筛选范围,具备有界结果、进度、取消和回滚
  • 自动数据库查询从显式类型化的字面量或存储的工作表单元格绑定有界位置参数,包括 Unicode、空文本、日期、null 和可用的公式缓存;Jet 和 ACE 保留类型化日期而不做依赖区域设置的时戳转换,刷新以事务方式应用结果
  • 自动 Text 查询以显式解码、类型化字段、跳过的列、可配置的标题行和起始行以及有界事务更新来刷新分隔符或固定宽度文件;固定宽度位置使用解码后的 UTF-16 code unit,修剪填充并在短记录上保留声明的列
  • 导入验证针对存储值和公式缓存检查严格标量类型、数值和日期边界、组合唯一性以及跨列关系,以结构化的单元格定址违规报告,并提供显式批注或更正工作簿操作
  • CELL 在 XLS 和 XLSX 中读取实际被引用文件的标识、受支持的基础数字格式、对齐、锁定状态和列宽;INFO("recalc") 读取工作簿计算模式,不可用的 Excel 应用程序环境信息则返回显式错误
  • 重复报表带会克隆带重映射标识的完整会话线程,共享原生分页渲染合并单元格跨度,而图表缓存会在编辑和重新计算后从受支持的本地区域刷新
  • 内置公式计算支持进程全局和工作簿本地的用户函数注册表、本地名称覆盖语义、无锁处理器调用、OnUserFunction 和 OnUserFunctionEx 回调,以及常用 Excel 文本、日期、工作日、工程/进制转换、位运算、统计、聚合、数学和动态数组函数,包括带逐单元格错误的广播数组运算符、完整多变量 LINEST / LOGEST 矩阵、定形 TREND / GROWTH 预测、稳定的行或列 SORT、具有独立方向和数组键的稳定多键行或列 SORTBY、支持单值广播和局部错误的数组感知 CEILING.MATH / FLOOR.MATH 舍入、具有局部错误和防溢出大输入分支的稳定数组感知 COT / ACOT / COTH / ACOTH / CSC / CSCH / SEC / SECH 求值、带溢出检查的 COMBINA / PERMUTATIONA 重复计算、受内存限制的 MUNIT 单位矩阵、Unicode 标量 UNICHAR 转换、通过 BAHTTEXT 输出泰铢文字、无需重新计算目标即可保留引用的 ISFORMULA 检查、以哈希索引实现的行或列 UNIQUE、溢出的 FREQUENCY 结果、对数二分 XMATCH / XLOOKUP、ISOMITTED 可选参数检测、ARRAYTOTEXT / VALUETOTEXT 数组转换、经过验证的 XIRR / XNPV 计算、PDURATION / RRI 投资期限和增长率、分数期间 VDB 折旧,以及完整 LET 绑定和可通过定义名称调用、可在 LET 中进行词法捕获的 LAMBDA 闭包
  • 引擎无关的 EvaluateFormulaAt 在显式工作表单元格上下文中求值 A1 或 R1C1 公式文本,不会变更单元格模型、缓存、脏状态、活动工作表或依赖图;类型化结果保留公式错误、数组、空值、易失性、取消、外部引用授权和稳定的失败类别,而 IXLSFormulaEvaluationTemplate 可在可配置的公式长度、步数、递归和数组内存预算下,跨目标单元格复用不可变的已编译锚点
  • 经典 XLS 和 XLSX 提供一致、无变更的 ValidateFormulaEntry 方法、工作簿级 FormulaEntryPolicy,以及跨单元格和定义名称的已解析 AuditFormulaSymbols 扫描,对稀疏经典 XLS 工作簿的扫描更快,并通过单次符号遍历保留独立的函数与名称发现结果、作用域、去重和发现顺序;精确空输入、返回空字符串的公式、未知函数、未知名称、语法失败、无效目标和目标格式限制彼此保持区分,普通公式赋值会原子地严格拒绝或保留,保留的未知符号会求值并传播为 #NAME?,UDF 或定义名称变更会使陈旧依赖失效,经典 BIFF 将保留的未知调用存为加载项用户函数,验证可识别已注册或回调用户函数、词法和定义名称 lambda、报表占位符、已注册外部链接和有效结构化引用而不调用处理器,危险的外部或宏式函数回调在参数求值前会被阻止,除非获得明确授权
  • 两个工作簿引擎均通过 TXLSFormulaTokenStream、ParseFormulaTokens、GetFormulaTokens、FormulaTokensToText 和 SetFormulaTokens 提供无损公式 token 检查与受保护变更,包含调用方拥有的流、只读 token 投影、原始 BIFF 负载、独立引用标志、克隆、原子引用替换、上下文来源和回写前验证
  • 支持单变量行、单变量列和双变量 What-If 数据表,具有隔离依赖重新计算、已删除输入错误、结构编辑、工作表复制和 BIFF8 往返支持
  • 通过 ForEachCell、FindText、ReplaceText、WriteCells 及数值、字符串和变体行列写入方法提供单元格扫描、模板查找和替换、回调范围填充与直接类型化数组写入;另提供整张工作表或单个单元格的 ConvertFormulasToValues,可将公式冻结为计算结果并保留缓存值
  • 引擎无关的公式缓存检查通过 IXLSFormulaCacheReader 和每个工作簿引擎的 CreateFormulaCacheReader 报告是否存在、已加载或已计算的来源,以及空白、数值、日期时间、字符串、布尔或错误类别,无需计算公式、调用用户函数、反编译 token 或改变工作簿状态;工作簿销毁后生命周期租约会安全地使读取器失效,共享公式成员保有独立缓存,XLSX 和 ODS 在重新打开后保留类型化错误和显式空白缓存
  • 经典 IXLSWorkbook.CreateReadOnlyView 与 XLSX IXLSXWorkbookOwner.CreateReadOnlyView 创建常量时间的共享模型 IXLSReadOnlyWorkbookView 实例,具有视图本地活动工作表、按值存储的单元格快照、不暴露可写对象、默认缓存公式结果以及可选公式文本或隔离公式计算;并发视图将递归状态、标量和数组缓存及 XLSX 已编译公式保持私有,XLSX 外部计算只读取文件本地链接缓存,打包单元格不会被实例化,每个视图均持有在变更前拒绝模型写入的读租约
  • 从 2.384.51 起,TXLSReadOnlyCellSnapshot.SheetName 是可读可写的 WideString 属性,底层由共享的 UnicodeString 存储支撑,减少逐单元格的名称分配;普通的读取和赋值语法不变,但原始字段地址和旧记录布局不再受支持,调用方必须重新编译
  • TXLSWorkbookWorkspace 接受来自各引擎 CreateWorkspaceWorkbook 的可撤销经典 XLS、XLSX 或 ODS 适配器,保留完整路径或 IRI 标识,按名称优先于位置解析外部工作表,并通过显式实时注册、可选的调用方控制的按标识一次加载器、类型化文件缓存和 #REF! 求值外部公式;并发加载请求共享同一结果,类型化诊断公开失败和资源限制,两种工作簿 facade 都保留兼容注册方法,已销毁目标会安全断开,重新计算绝不隐式打开文件或网络资源
  • TXLSWorkbookWorkspace.BuildDependencyGraph 从已注册的经典 XLS、XLSX 和 ODS 模型提取单个跨工作簿公式图,保留完整工作簿和工作表标识、符号化的本地与外部定义名称,在可能时将本地名称解析为具体依赖,并将大型矩形范围存为紧凑区间;行区间树可加速边构建与依赖方查找,图构建会读取打包 XLSX 存储而不实例化它
  • TXLSWorkbookWorkspace.Recalculate 保留并增量标脏共享依赖图,按跨工作簿拓扑顺序调度无环公式节点,拒绝真正的强连通公式循环而不拒绝无害的双向工作簿链接,并共享一次运行本地的外部单元格缓存,提供显式命中、未命中、失效和阻塞节点诊断;同一工作区调用会串行化,运行期间移除会通过安全适配器快照返回工作区已变更状态,销毁会等待活动计算,失败节点仍保持脏状态以供显式重试
  • CalculateAndVerify 将存储的公式结果与新鲜的非易失计算比较,并报告工作表、单元格、公式、期望值和实际值诊断而不替换缓存;RecalcAndVerifyEx 在此基础上增加深度审计,使用隔离的依赖图结果叠加、带有界调用栈的类型化失败类别、进度取消,以及可选的原子应用重新计算值
  • 深度审计容差会过滤不匹配报告,而不抑制新鲜的中间结果:依赖公式使用审计值,即使未报告不匹配,显式应用也会刷新已更改的缓存;绝对容差与相对容差均作用于双精度结果
  • 经典 XLS 深度公式审计会预留遍历容量,并高效复制连续的纯 double 缓存快照,同时保留其他 Variant 类型和隔离的求值叠加层
  • 经典重新计算使用惰性构建的依赖图,仅向传递依赖方传播脏输入,每次运行重新计算易失公式,并按依赖顺序求值无环公式,对循环引用应用强连通分量迭代;禁用全精度时,公式和 What-If 数据表缓存会在依赖方使用前按其有效显示数值精度舍入
  • 支持 AutoFilter、列表数据验证、具有无标题布局和逐表批注的 Excel 表格,以及结构化引用公式求值(Table[Col]、列跨度、[#Data] / [#All] / [#Headers] / [#Totals])、条件格式扩展(带负值填充和边框颜色的数据条、色阶、图标集),保存时采用工作表唯一优先级,并将 PivotTable 范围规则路由至 Excel 2010+ 扩展桶,另支持图表工作表
  • 支持文本框、OfficeArt 绘图、关系驱动的类型化透视导入、经过筛选和分组的多值具体化、计算字段、项和成员、小计、总计、稳定排序、经典和扩展 ShowDataAs 计算,以及富文本批注
  • 事务性本地数据透视表缓存刷新在当前几何下解析矩形、工作表级定义名称和表格来源,排除物理表格总计,在工作表移动和重命名后保留来源标识,在来源重排、移除和重新引入之间保留现有字段与成员标识,保持共享视图选择稳定,处理类型化错误值,并在变更缓存前拒绝不受支持的架构或新的未映射离散分组成员
  • 安全的数据透视表工作表具体化求值隔离的缓存,拒绝不安全的重叠,保留单元格对象和格式,并在调整大小、移动和 XLSX 重新打开后跟踪确切拥有的值
  • 类型化的非 OLAP 数据透视表 Slicer 选择检查并更改导入的共享成员选择,与连接视图筛选器求交集,保留其他字段上的独立限制,并在变更前拒绝歧义或不受支持的绑定
  • 高保真 BIFF8 往返,可保留 Excel 创建的记录、精确 RGB 和主题颜色、自定义视图以及共享与修订元数据
  • 通过 BIFF8 RC4 加密保护工作簿,支持带有加密包数据完整性 HMAC 验证的 Agile 加密 XLSX 保存和加载,并支持经典写入保留(SetModifyPassword),携带建议只读标志、密码哈希和保留用户名
  • 合并单元格 AutoFit 重载可将所需行或列增长分配给第一个成员、最后一个成员,或均匀分配给合并跨度,同时保留隐藏状态并遵循每个成员的边界
  • 跨工作簿工作表复制(TXLSWorksheets.AddCopy)可将单元格值、公式(针对目标工作表名称重新编译)、具有精确 RGB / 主题颜色的格式、合并单元格、批注、超链接、行列布局、冻结窗格、保护、页面设置、标签颜色、条件格式、数据验证、AutoFilter 条件、表格、嵌入图片、富文本运行(字体按值迁移)和图表工作表(系列引用针对目标重新编译)克隆到另一工作簿;若目标中缺少公式所引用的工作表且源工作簿具有文件标识,则公式会重新指向源工作簿作为外部链接
  • 共享缓存的数据透视表视图、本地数据透视表 Slicer 创建与显式的选择感知移除、固定的分组缓存刷新以及原生紧凑布局元数据预览
  • 事务性原生数据透视表工作表输出支持分组布局和自定义行小计;本地 SUM 计算字段和缓存拥有的项保留上下文求和、求解顺序、受支持的显示计算和筛选,不受支持的状态会在变更前拒绝
  • 数据透视表 Timeline 与 Slicer 数据状态提供受保护的本地日期筛选、共享视图生命周期和显式的原生无数据项刷新
  • 自动查询提供程序显式刷新受支持的 Text、ADO、ODBC 和 Web 查询,具备有界结果和可注册的自定义提供程序
  • 经典图表检查解码受支持的原生 OfficeArt 填充表,以点为单位公开标记直径,并在应用类型化状态前验证存储的文本和批注范围;原始图表存储被保留,可移植的经典图表外观另行验证
  • 便携式无头输出把受支持的经典 XLS 或 XLSX 矩形捕获为不可变快照,并在 Linux 和 macOS 上以显式字体几何渲染 PDF、SVG 与 PNG,支持富文本、建模的绘图对象、单元格内图像、布尔复选框、受支持的缓存 XLSX 图表,以及带调用方声明布局和有效图例尺寸的有界核心 BIFF8 缓存图表
  • 文本与统计计算数组参数保留函数特定的强制转换和错误,按原始位置配对协方差,并遵守计算预算
  • 聚合计算中的定义名称保留标量、数组和引用强制转换、类型化错误、依赖关系和资源限制

现代 XLSX facade

围绕专用 OOXML 引擎构建,面向 Excel 2007+ 工作簿TXLSXWorkbook.xlsx

  • 支持共享字符串、样式、绘图、工作表功能、ZIP/XML 打包和往返元数据,按字段处理 SpreadsheetML Xstring,保留控制字符及字面量 token 而不改写公式语法_xHHHH_
  • 工作表页面设置通过关系和每工作表二进制部件保留字节精确的打印机设置,接受非标准源部件位置,写出确定性的规范目标,在同工作簿和跨工作簿复制中深度复制负载,并报告缺失、类型错误或悬空打印机关联而不绑定无关二进制部件pageSetupprinterSettingsN.bin
  • 类型化数值、字符串和变体行列写入器可在重复批次中几何增长单元格容量,将向前行批次直接追加到预分配的稀疏行向量,在工作表限制处安全裁剪,在重叠时保持稳定句柄,并避免回调分派
  • 支持 OpenDocument .ods 读写:通过 Open / OpenODS 导入现有电子表格,经由 SaveAsODS 或 SaveAs(xlsxOpenDocumentSpreadsheet) 导出,可用 TODSExportOptions 调整输出,并可往返样式、富文本、图片、图表、验证、条件格式、页面设置、打印范围、大纲分组、工作表结构和工作簿元数据;导出选项保留正常的重算、进度取消、诊断和写保护行为,文件输出在序列化失败或取消时保留原有目标文件
  • ODS 单元格比较和表达式规则在完整的整行、整列和宽目标上保留差异字体样式、纯色或透明背景以及受支持的数字格式,并使用紧凑的重复空白载体;显式清除的属性会保留下来,无关的基础样式仍留在每个单元格上,主题色或索引色导出为解析后的颜色
  • 支持多格式导入:OpenDocument .ods 以及可嗅探分隔符、检测 BOM 并可选择推断值类型的 CSV / TSV
  • 内容签名检测可检查文件或流的前导字节,以不依赖扩展名地区分 BIFF 复合文件、OOXML 包、OpenDocument 包和纯分隔文本;两个工作簿引擎都会拒绝容器不匹配的文件,并明确指出正确的加载器DetectExcelContentFormat
  • 只读属性按单元格数字格式渲染显示文本,包括分隔符、百分比、日期时间掩码、多节掩码和布尔格式,与 Excel 网格显示一致FormattedTextIXLSRangeTXLSXCell
  • 文件变更监控可观察磁盘上的工作簿,其他进程覆盖保存时触发事件,支持配置轮询间隔以及主线程或监控线程事件投递TXLSFileMonitorOnFileChanged;处理回调中可以停用或销毁监控器,也可以切换被监控的文件
  • 密码提示:经典 XLS 引擎在 Open 遇到缺少或错误密码的加密工作簿时,经由 OnPassword 向应用请求密码并重试打开
  • 格式刷可一次描述字体、填充、边框、对齐、数字格式和保护,再应用到单元格、范围、行、列或整张工作表,只应用被触及的方面,并在每次应用中仅解析一次池索引以加速批量格式化TXLSXCellFormat
  • 统一流式行读取:TXLSRowCursor 可逐行遍历 .xls、.xlsx、.xlsm、.ods、CSV 或 TSV 源(FindFirst / FindNext),内存中仅保留当前投影行或 ODS 重复模板,在分配值之前执行行边界和列选择,保留缓存的公式结果与已存储的带样式空白单元格,区分公式是否存在与公式文本是否可用,可选地隐藏公式文本,跳过 ODF 覆盖单元格,在重复 ODS 跨度中直接跳转到选定列,解码 UTF-8 或 UTF-16 BOM 以及多行带引号的文本记录,探测逗号、分号、制表符或竖线分隔符,并以常量时间查找 ValueByCol;显式生命周期状态、幂等取消、借用或移交的流所有权、经代次检查的零拷贝行视图、PeakRowBufferedBytes 和 SheetPassesStarted 让长时间扫描可观测且安全,而 TXLSForwardReader 则将相同后端适配为从一开始计数的工作表和单元格回调,无需打开被跳过的工作表部件
  • 进度与诊断:经典 XLS 和 XLSX 工作簿提供工作回调以及可取消的开始/工作/结束回调,而 IXLSWorkbookProgress 和 TXLSXWorkbook.Diagnostics 公开稳定代码、严重性、操作、工作表或包上下文、本机返回值与异常详情
  • 故障安全保存:经典工作表、图表、样式扩展、VBA、控件流、存储和输出提交故障会传递给调用方,而 XLS、XLSX 和 ODS 的磁盘输出会先暂存,再以原子方式替换目标
  • Windows 目标替换在支持 POSIX rename 的文件系统上容忍允许删除的元数据和读取器句柄,同时现有读取器保留原始字节;删除访问权限、非删除共享锁和只读保护会在单次提交前检查,不进行保存重试,较旧或不受支持的文件系统保留旧式提交路径
  • 可操作的文件保存诊断:TXLSXWorkbook.SaveAs(FileName) 及其显式格式重载在目标替换失败时保留原生 Windows 错误,并给出诊断代码 1005,原目标保持不变
  • 紧凑的单元格与样式存储:XLSX 单元格存储于 256 行块中,具有稳定的公开句柄和按行优先、对缓存友好的序列化;行条目不带冗余的载荷标记,值、公式和富文本变更不会触发索引重新分类;导入的单元格样式通过一个不可变的直接索引 cellXf 数组解析;每次保存前自动压缩样式池,移除未引用的字体、填充、边框、数字格式、对齐和保护
  • 区间样式叠加:行、列和矩形格式可保持紧凑,无需实体化空单元格对象,在访问单元格时延迟解析,能在结构编辑后保留,并以紧凑的列、行和仅样式单元格条目往返保存
  • 按行流式常规保存:StreamingWrite(默认值)将每个工作表行直接写入包的 deflate 流,因此峰值内存取决于最大的单行;共享字符串和辅助 XML 部件则通过单个可复用的 UTF-8 序列化器逐项流式写入
  • 仅元数据打开:TXLSXWorkbook.MetadataOnly 会解析工作簿属性、已定义名称、工作表名称和可见性状态、样式、主题、连接和外部链接,但跳过工作表单元格 XML、共享字符串、批注和人员数据、工作表关系、绘图、图表、表、查询表、数据透视表和工作表可达的不透明载荷,以便从大型工作簿快速低内存地发现属性和名称
  • XLSX 外部工作簿槽位遵循 workbook.xml 声明顺序,并为损坏的关系保留空占位符,从而使后续 [N] 公式引用在加载和保存后保持稳定
  • 选择性工作表加载:TXLSXWorkbook.SelectedSheets 让 Open 仅为指定名称的工作表解析单元格 XML,其他工作表保留名称和可见性但不加载单元格;调用 LoadSheet(Index) 可按需从原始归档中实体化被跳过的工作表
  • 增量压缩部件复制:TXLSXWorkbook.PreserveRawParts 会为每次 SaveAs 操作打开一个私有且已验证的源归档,并使用原始压缩载荷复制未改动的主题、VBA 项目、连接、外部链接、图像、图表、数据透视表、数据透视缓存以及可通过关系访问的不透明条目;成功的文件保存会成为下一次的干净基线,而基于流的工作簿、已变更的源文件、已修改的载荷、不支持的压缩方法和压缩大小不匹配会使用事务性序列化回退或拒绝路径
  • 工作簿扩展保留:XLSX 的打开和保存会保留外来工作簿根命名空间声明、标记兼容性属性、完整的工作簿级 <extLst> 载荷及其未知关系,同时仍可编辑强类型工作表、名称、视图、计算属性和数据透视缓存;当生成的 ID 冲突时会重新映射关系引用
  • Slicer:Worksheet.Slicers.Add(Table, ColumnName) 可端到端地创建表格 Slicer(Excel 2013+)——slicer cache、保留的 defined name、工作表扩展和绘图锚点一并写出——并支持位置、标题、列数、样式和行高控制;带有 Excel 创建的 Slicer(表格或数据透视)的工作簿在打开和保存时会原样往返保留它们,未改动的部件和锚点逐字节重放,工作簿其余部分仍完全可编辑
  • 多个工作簿窗口:TXLSXWorkbook.WorkbookViews 提供有序集合,支持添加、插入、删除、移动和清空操作,以及强类型可见性和几何状态、可编辑的未知属性与扩展,还有工作表 workbookViewId 重映射;既有的单窗口属性仍是第一个视图的兼容投影
  • 外部已定义名称与刷新失败:TXLSXExternalLink 可解析、存储并往返保存链接工作簿中的 <definedNames> 条目,而每个 TXLSXExternalSheetData 均通过 RefreshError 标志跟踪刷新失败状态,无需实时数据源
  • 多格式剪贴板导入:XLSPasteFromClipboardRich 优先使用 XML Spreadsheet 剪贴板格式(公式、样式、合并单元格)而非纯 Unicode 文本,并提供专用的格式检测、提取和 SpreadsheetML 2003 解析函数
  • 原生 Biff8 剪贴板交换:两个引擎上的 CopyToClipboard 都会在文本和 HTML 之外发布 Excel 自身的 “Biff8” 复合文档载荷,而 PasteFromClipboard 会优先使用它——值无需受区域设置影响的重新解析即可到达,相对公式引用会重新锚定到粘贴目标,数字格式、字体、填充、边框、对齐和合并单元格可在 HotXLS 工作簿之间以及从 Excel 复制内容中往返保留
  • XLS 和 XLSX 的 PasteFromClipboard 在一次剪贴板锁定内同时捕获 BIFF8 和回退文本,保留现有的重试策略;BIFF8 不可用或无法解析时,直接使用捕获到的可读文本,无需重新打开剪贴板。若 BIFF8 可读而配套文本取不到,BIFF8 仍然可用;仅文本不可用时不会插入任何单元格
  • 必需的文本和 BIFF8 剪贴板发布失败时,会在整个清理过程中保留原始的 Win32 GetLastError 诊断,调用方可立即检查
  • 富文本标记:单元格 TaggedText 属性可双向转换富文本运行和轻量标记(<b>、<i>、<u>、<s>、<sub>、<sup>、<color=#RRGGBB>、<font=Name>、<size=N>)
  • 支持 64 位的安全剪贴板读取器,具备争用重试,为绝对引用、反序、整行、整列和空白分隔区域提供缓存的条件格式与数据验证目标匹配,规则查找、删除、条件求值和验证检查保持一致,并有二分搜索的 PDF 超链接索引
  • 计算扩展性:按名称注册用户函数、未知函数审计 API、跳过损坏部件的恢复模式打开、原生 Biff8 剪贴板交换,以及缓存的数据验证范围匹配
  • PDF 图像:工作表图片作为 Flate RGB XObject 嵌入,JPEG 直接透传并复用 PNG 流(不重新编码,通过软遮罩保留 Alpha 通道),字节完全相同的图像只嵌入一次,保持在一起的区块和 XlsxAutoPageBreaks 对齐分页,ZipCompressionLevel 和 DeterministicOutput 控制保存输出
  • PDF 输出管线:页面内容流使用 Flate 压缩,连续文本操作共享批处理文本块并去重字体和颜色选择,相邻且相等的填充合并为单个矩形,共线边框段以合并运行描边——文件更小、生成更快;OnProgress 和支持中止的 OnProgressEx 报告开始、页面和结束状态,而 Cancel 会停止长时间导出,且不会向目标流提交不完整的 PDF
  • PDF 单元格文本保真度:真正的自动换行,带垂直块对齐和两端对齐或分散对齐行,旋转和垂直堆叠文本,缩小以适应,类似 Excel 的文本溢出到相邻空单元格并裁剪,常规对齐下数字右对齐,缩进,带逐运行样式、大小、颜色、下划线、删除线、上标和下标的富文本运行,对角线和双线边框,以及跨合并单元格的文本——全部通过经 GDI 校准的 Helvetica 前进宽度定位
  • PDF 打印保真度:带 Excel 字体大小、颜色、粗体/斜体/下划线/删除线和上标/下标代码的样式化页眉和页脚,黑白打印模式,打印行列标题,水平和垂直打印居中,批注指示器及通过 PrintCommentsAtEnd 在末尾生成的批注列表页,内部超链接的文档内 GoTo 链接,带 XMP 元数据的查看器 PageLayout 偏好设置,Excel 精确的 MDW 列宽,以及将 Unicode 字体嵌入 TrueType 集合并合成粗体/斜体字形
  • PDF 图表:工作表图表绘制为原生矢量——簇状、堆积和百分比堆积的柱形/条形图,带标记的折线图、面积图、带百分比标签的饼图和圆环图、散点图和雷达图——具有带标题的框架、自动缩放的坐标轴和刻度标签、网格线、图例、数据标签、逐系列填充以及 Excel 的默认强调色调色板;锚定于最后一个数据单元格之外的图表会扩展打印区域
  • 交互式 PDF:工作表超链接会变为可点击的链接注释,且每个导出的工作表都会获得一个文档大纲书签
  • 包级扩展性:强类型自定义文档属性、自定义 XML 数据部件、SVG 图像伴随部件、从单元格获取且带索引缓存和数据点可见性覆盖的逐系列图表数据标签、按分区颜色定义的用户表样式,以及列出每个违规单元格的数据验证审计 API
  • 格式保真度升级:已用时间 [h]:mm:ss 和分数 # ??/?? 数字格式可在所有位置呈现,[Red] 括号会重新着色 PDF 文本,单元格渐变填充可往返保存并在 HTML/PDF/查看器中呈现,冻结窗格和窗格滚动可读回,DispBlanksAs/PlotVisibleOnly 是图表属性,批注框通过 WidthPt/HeightPt/AutoSizeFromText 确定大小,ValidateNumberFormat 用于检查自定义格式字符串
  • 符合 Excel 语义的搜索:FindText / ReplaceText 支持通配符(*、?、~ 转义)、整单元格匹配、区分大小写、公式文本搜索、向后扫描、按列优先的扫描顺序、将搜索限制在矩形范围内的窗口化 FindTextIn / ReplaceTextIn 和逐匹配替换回调;通过 AddSubtotals 实现 Excel 语义分组(带标签的 SUBTOTAL 行、总计、分级显示级别、分页符和替换模式),A1ToR1C1 和 R1C1ToA1 可在 A1 与 R1C1 引用样式之间双向转换公式,另有 WriteAutoValue 用于类似 Excel 的文本类型探测(ISO、美国 m/d/yyyy 和欧洲 d.m.yyyy 日期,可选 AM/PM 时间)、GetRangeStatistics 范围聚合、不区分大小写的 SortRange,该方法在保留公式的同时遵循 Excel 引用语义($ 部分不变,相对引用重新锚定)、GetHtmlFromCell 单元格 HTML 片段,以及将 HTML 片段作为富文本运行的 SetCellFromHtml
  • 工作表背景:SetBackgroundImage 可在两个工作簿引擎中创建平铺图片;XLSX 在工作表复制时保留包媒体所有权,而 Classic 读取和写入强类型 BIFF8 背景记录,支持连续载荷拆分、精确保留未知格式、复制隔离和引擎间已知格式转换;工作簿查看器会在未填充单元格后显示有效背景,而打印、PDF、SVG、位图、图元文件和两个 HTML 导出器默认禁用背景,并通过 ExportSheetBackgroundImages 显式启用输出,同时保持跨页相位连续性和每会话资源复用
  • 格式引擎深度:条件数字格式区段([>=100])按值选择,文本区段(@)模板化字符串,TaggedText 接受 <br>、<strong>/<em> 和 <font color=...> 属性形式,ConvertFormulasToValues 在两个外观 API 上均提供仅外部模式,列保持在一起区块补充行区块,经典 Spinner/ScrollBar 窗体控件可创作到 XLS,行自动适应可处理合并单元格
  • 剪贴板交换:PasteFromClipboard 会将制表符分隔文本读取到单元格,并提升数字/日期/布尔值类型且识别公式,而范围级 CopyToClipboard 会发布 Unicode 表格文本和带样式的 HTML,其中包括公式、合并单元格、链接、显示格式和嵌入分隔符保留
  • 可编辑工作簿查看器:TXLSWorkbookViewer 可直接绑定任一工作簿引擎,加载 XLS、XLSX、XLSM、XLTX、XLTM 或 ODS 文件,在不实体化稀疏 XLSX 单元格的情况下呈现样式和条件格式,并提供考虑受保护单元格的就地编辑、公式栏输入、自动重新计算、矩形选择、公式引用事件以及 O(1) 的有界撤销和重做
  • 经典 XLS 数据透视表缓存使用带唯一标识符的独立存储流,支持工作表或命名源引用、Unicode 工作表名称以及加密缓存的读写;既有缓存扩展在保存时保留其原始字节
  • 可复用的数据透视布局设计器:TXLSPivotDesigner 提供可用区、行区、列区、筛选区和值区,确定性的字段重新排序、类型感知的默认聚合、显式聚合变更、布局验证,以及适用于 XLS 或 XLSX 数据透视模型的结果应用
  • 经典窗体控件:工作表和形状集合可以创建、枚举、编辑、删除并往返保存按钮、单选按钮、复选框、组合框和列表框控件,支持强类型标签、选中状态、平面或 3D 渲染、宏绑定、链接单元格、源范围、控件种类和单元格锚点
  • 通过 GetChartModel 检查经典 XLS 图表,可解码图表系列、3-D 状态、图表和坐标轴标题、图例、具有主坐标轴或次坐标轴组的坐标轴、系列名称、类别、值公式、带分隔符的系列数据标签显示标志、逐系列主图表或次图表组绑定、已命名或外部类别和值引用、带 GelFrame OfficeArt 主题颜色扩展所承载主题色填充(主题色索引加色调)的逐系列线条、填充和标记样式、图表流中的完整 3-D 场景参数,以及数据透视图链接(源 PivotTable 视图名称和通过 SXViewLink / PivotChartBits 记录的隐藏字段标题标志),还可通过 AddChartObject 在普通工作表上锚定嵌入式图表对象,同时支持逐系列趋势线(回归类型、阶数或周期、自动或固定截距、方程式与 R 平方显示、预测和回推、显示名称)和误差线(方向侧、值类型、端帽、量值)
  • 强类型 XLSX 页眉和页脚图像:通过 TXLSXWorksheet.HeaderFooterImages 支持奇数页、偶数页和首页的全部左、中、右槽位,包含图像字节、格式、标题、点尺寸、点边距、自动图片字段代码、工作表复制以及与批注一同进行关系安全的打开/保存往返
  • 可编辑的 XLSX 图片效果:通过 TXLSXImage 支持百分比裁剪边缘、透明度、亮度、对比度、拉伸或平铺填充、按度数旋转,并在结构上保留无关的已导入 DrawingML
  • 高级 XLSX 图表构建与往返保存:提供有序的柱形、条形、折线、饼图、面积、散点、气泡、雷达、股票、曲面和 3D 绘图组,具有显式绘图组绘制顺序的真实组合图表、主坐标轴和次坐标轴对、强类型日期和系列坐标轴、可配置的 3D 视图、Excel 图库样式、标题、图例、坐标轴文本样式、手动绘图区、标题、图例和坐标轴标题布局、稀疏字符串或数字系列缓存、带实时二维范围解析的稀疏多级类别缓存,以及可编辑地保留未知 ChartML 扩展与格式
  • 选择性格式补丁:TXLSXRange.ApplyFormatPatch 只复制请求的字体、填充、边框、数字格式、对齐或保护组件,将较小的源图案平铺到较大的目标范围,并保持单元格值不变
  • 主从数据导出:TDataToXLS.ReadDetailTables 会在每个主记录下递归导出活动链接的明细数据集,而 IndentDetailTables 会为每个关系层级增加一列缩进,继承的导出设置让层次在视觉上保持一致;预写记录和值事件可筛选记录并转换字段值,且不会干扰数据集游标
  • WordArt 创建:TXLSXWorksheet.AddWordArt 创建以单元格为锚点的 DrawingML 文本,可配置预设变形、文本填充色和轮廓色,而后续打开/保存周期会保留完整的形状锚点
  • 不支持的 OOXML 包保留:可从未知包根、工作簿、工作表或绘图关系访问的自定义部件,会在打开/保存往返中保留避免冲突的关系 ID、内容类型、子关系、压缩选择和精确载荷字节,TXLSXWorkbook 提供退出选项和已保留部件诊断
  • 具有样式、筛选范围和条件、排序状态、稳定列标识符、总计行标签和函数、计算列公式、总计行公式、结构感知的行列编辑以及往返集合助手的 Excel 风格表
  • 强类型工作表忽略错误规则:通过 TXLSXWorksheet.IgnoredErrors 覆盖每个标准错误类别、多区域单元格引用、工作表复制、行列编辑以及打开/保存往返
  • 强类型 What-If 方案管理器创作:通过 TXLSXWorksheet.Scenarios 支持活动和显示方案、变化单元格范围、锁定和隐藏状态、用户批注、输入值和数字格式、工作表复制、结构编辑以及免修复的打开/保存往返
  • 强类型 What-If 数据表:通过 TXLSXWorksheet.AddDataTable 和 DataTables 覆盖行输入、列输入、双变量、已删除输入、计算顺序、工作表复制、结构编辑和 SpreadsheetML 往返语义
  • 强类型外部数据连接:通过 TXLSXWorkbook.Connections 提供强类型外部数据连接,通过 TXLSXWorksheet.QueryTables 提供工作表查询结果,包含刷新策略、凭据、数据库、Web 和文本设置、精确的强类型参数值、表和字段绑定、结构编辑、工作表复制以及扩展安全的 OOXML 往返
  • 通过 CalcMode、RefMode、迭代设置、重算标志、全精度控制和并发计算设置提供完整的 Workbook 计算策略,并支持 schema 默认值及彼此独立的非默认值持久化;可选择启用的 RecalcLookupCache 与 RecalcAggregateCache memo 会让同一轮重算中的重复 XLOOKUP/XMATCH、VLOOKUP/HLOOKUP/MATCH 和 SUMIF/COUNTIF/AVERAGEIF 扫描,以及在一个普通范围上的无条件 SUM/AVERAGE/MIN/MAX/COUNT 复用首次结果,仅在依赖图可证明引用稳定时才会启用,因此结果绝不会发生差异
  • 保存时重算策略通过 RecalcBeforeSave(手动、仅脏数据、始终)提供,另有 RecalcNeeded 脏状态检查,以及完整重算后的单元格 RecalcCell 值获取
  • 报告值占位符支持带后备值的 {{name;default}}、dbvalue/dbcount/tonumber/ref 表达式(基于已注册 DataContext 和隔离的每次运行数据会话)、将独立的 {{=formula(...)}} 单元格写为活动公式,并提供 {{#imgsize}}、{{#comment}}、{{#html}}、{{#sheetvisible}}、{{#deletesheet}} 结构指令
  • 通过精确的 {{#usertable(alias, logicalName, providerKey, name=expression)}} 单元格定义类型化延迟用户表,提供编译期语法检查、无需 resolver 的静态预检、动态类型参数、已注册 provider 强制校验、不区分大小写的冲突诊断、声明限制,以及通过 dbvalue 或 dbcount 的首次使用加载;TXLSReportGenerator.DataContext 和 TXLSReportTemplateChecker.DataContext 将同一注册表带入生成和验证流程
  • 报告数据整形支持延迟 Filter、稳定多键 Sort 和 Distinct 组合器;FromDataSet 与 FromObjects 适配器将已打开的数据集和已发布属性对象列表绑定为报告表;RunBidirectional band 使每条主记录均拥有由子记录驱动的列;PreprocessAndRun 允许模板在最终填充前依据数据自行修改
  • 两个 Workbook 引擎均支持剪贴板粘贴选项(仅值、插入行/列),直接读取器、行游标和前向读取器上的 OnSkippedRecord 诊断可暴露被跳过的畸形单元格引用和中止的 BIFF 工作表扫描
  • Classic XLS 共享修订保护可通过 SharedRevisionProtected 和 SharedRevisionPasswordHash 往返保留,报告还可端到端处理加密:加密模板可凭密码打开,RunToEncryptedFile 一步即可生成加密结果
  • 跨 Workbook 的 CopyRangeTo/CloneRangeTo 可在样式池之间按值重新映射单元格样式,Classic XLS 的 CreatedDate、LastSavedDate、RevisionNumber 和 EditTimeMinutes 可通过 OLE 摘要流往返保留
  • 图表渲染会使用柱形图组的 GapWidth、Overlap 以及 stacked / percent-stacked 分组,使渲染后的条形图和柱形图符合模型的布局语义
  • 图表可往返保留图表空间格式(圆角、背景/边框/绘图区颜色)和五个图表保护开关,渲染器会使用这些颜色;系列级 Smooth 及标记填充/边框颜色可往返保留并渲染为曲线段;坐标轴携带交叉模式和刻度线样式,AutoTitleDeleted 会抑制派生标题
  • TXLSPDFWriter 无需任何电子表格即可构建 PDF:显式页面大小、多页流、矩形/直线/椭圆、测量文本、变换、裁剪和图形状态控制
  • AutoFit 提供两阶段 MarkSheet/ApplyMarked 流程,可检查待处理的测量结果、适配区域边界、IgnoreStrings、KeepHeightAutomatic、DefaultRowHeightVisual 下限和一键 FitWorkbook
  • PDF Unicode 字体支持自动、必需子集、完整程序和仅映射嵌入策略,独立 OpenType CFF 程序,供测量与绘制共用的 GPOS/kern 定位,解析前 OnFontEmbed 回调,以及递归缓存的 OnGetFontDirectories 字体族/样式解析器;PDF/A 输出仍要求嵌入字体程序
  • 集合辅助方法可按名称或位置查找、删除和重排工作表、表格、图表、图像、合并范围和外部链接
  • 从数据范围一键创建图表:AddChartFromRange 和 AddColumnChart / AddBarChart / AddLineChart / AddPieChart / AddAreaChart 快捷方法会像 Excel 的“从所选内容插入图表”一样,自动从数据块推导系列和类别
  • 插入和删除行列会调整公式、表格列及其筛选或排序元数据,使已删除表格列的结构化引用在所有公式使用者中失效,在编辑区域需要不同公式锚点时拆分单元格值和表达式条件格式及数据验证,保持聚合条件格式域完整,并自动移动已定义名称、超链接、含气泡大小的图表系列,以及图像、图表、文本框和 WordArt 锚点
  • 公式计算与 Classic XLS evaluator 共用,提供进程范围和 Workbook 本地用户函数注册表、Workbook 本地覆盖语义、并行安全的无锁 handler 调用、广播数组运算符和按单元格报告的错误、完整多变量 LINEST / LOGEST 矩阵、成形的 TREND / GROWTH 预测、文本、日期、工作日、工程/进制转换、位运算、统计、聚合和数学函数覆盖、不触发目标重算且保留引用的 ISFORMULA 检查、对数二分 XMATCH / XLOOKUP、ISOMITTED 可选参数检测、ARRAYTOTEXT / VALUETOTEXT 数组转换、经验证的 XIRR / XNPV 计算、PDURATION / RRI 投资期限和增长率、分数期间 VDB 折旧,以及 OnUserFunction 自定义函数回调;AnalyzeFormulaIssues 为缺失函数、外部引用和精确的循环依赖组件提供结构化预检
  • 当前行形式的结构化引用(Table[@Col])会在串行和并行重算中依据公式单元格自身所在行求值
  • 依赖分析会展开带作用域和嵌套的公式定义名称,包括多区域引用,且仅在无法静态解析依赖关系时使用循环保护
  • 由 Excel 编写的共享公式在完整 Workbook、流式直接读取器和行游标路径中打开时,每个跟随单元格都会展开为正确的相对单元格表达式;CSE 数组锚点和跟随单元格可在安全的整数组结构编辑、完整范围复制、工作表复制和跨 Workbook 工作表复制中保留
  • 动态数组可用 TXLSXRange.SetDynamicArrayFormula 编写,在打开和保存周期中保留公式范围和 XLDAPR 元数据,在根节点间共享一条去重元数据记录,在跨 Workbook 复制中重新映射该记录,并在清除最后一个根节点后将其移除
  • 计算数组组合包括类型化 TRANSPOSE、计算的矩阵乘法、行列式和求逆、CHOOSECOLS / CHOOSEROWS 的负数和向量选择器、XLOOKUP / XMATCH / MATCH 的计算查找向量和数组请求,以及带求值步数和数组内存限制的堆叠与重塑操作
  • 可在 XLSX 工作表上编写窗体控件(AddFormButton / AddFormCheckBox / AddFormRadioButton / AddFormComboBox / AddFormListBox),支持 VML 形状、ctrlProps part 以及控件文件的原样往返保留
  • 通过保留路径的 ExternalWorkspace 和兼容的 RegisterExternalWorkbook facade 提供实时 XLSX 跨 Workbook 求值:完整关系目标与扩展名仍互不混淆,歧义别名会明确失败,目标销毁会安全撤销实时 adapter,文件本地类型化缓存则在不隐式访问文件或网络时充当后备
  • 使用 TXLSXWorkbookCompare 比较 Workbook,可将工作表、单元格、公式和合并差异报告为结构化列表或每项差异一行的报告
  • 通过 TXLSCodeGen(Delphi 和 C++Builder 方言)生成 Workbook 代码,并使用 TXLSImportCheck 验证列规则导入,支持红色字体与注释标注以及仅保留违规项的压缩
  • 无法识别的 XLS 工作表记录可原样往返保留,读取时捕获的厂商专用或较新规范记录会在保存时重放
  • 通过 AddPresetShape 支持预设几何形状,任意 OOXML ST_ShapeType token 都会原样写入绘图并往返保留
  • 模板处理:ApplyTemplate 在整张工作表中替换 {{key}} 占位符,FillTemplateBand 则按记录克隆模板块,支持公式转换、依赖条件格式、验证、链接、注释、图片、图表、合并克隆和行级 #skip 条件;CloneRangeTo 以可选择的 payload 提供相同的依赖感知复制路径;TXLSCompiledReportTemplate 会为跨单元格、富文本、注释、超链接、绘图文本、页眉页脚、工作表名称、已定义名称和文档属性的重复运行一次性编译占位符位置和文本片段,无需重复扫描 Workbook,并支持定址预检诊断、变更前严格验证和诊断工作表;TXLSCompiledReportRunner 增加目标级进度、取消、确定性已应用计数、可复用的完成或失败状态、成对 Workbook 和工作表生命周期事件、可恢复的问题快照,以及原子流、文件或加密文件输出;TXLSReportGenerator 增加模板读取事件、Workbook、文件、流和加密文件来源以及原位或原子克隆修改;IXLSReportTable、IXLSReportCursor、每次运行的延迟 provider 和 resolver,以及复合键关系索引,提供可复用的虚拟或内存数据源且不会强制加载未引用的表;TXLSReportTableFactory 可组合 top、投影、计数、最小值、聚合、并集、拆分和 hash-join 视图,无需复制完整中间行 payload;可运行的 Delphi 和 C++Builder gallery 展示相同的数据上下文、已编译 runner、诊断工作表、LastResult 和 RunToFile 路径
  • 命名的结构化报告 band:TXLSCompiledReportBand 解析精确的 Workbook 或工作表作用域矩形定义名称,并基于一次有界行列快照向下、向右或沿双轴扩展,保留值类型、混合引用公式、合并、规则、验证、超链接、注释、绘图及显式行列布局元数据,同时在变更前拒绝不支持的部分结构
  • 重复的范围和报告 band 复制会复用作用域定义名称的后缀搜索,同时在删除、重命名或作用域变更后仍保留首个可用命名
  • 通过 TXLSCompiledTableReportBand 支持可扩展 Excel 表格报告 band,使用一次有界游标快照扩展单个数据模板行,同时保留表头、汇总、表格和 AutoFilter 范围、筛选和排序状态、列元数据、计算列与汇总公式、样式、结构化引用和依赖工作表对象;可表达的空结果会移除数据模板行,而查询支持的表格和不安全布局会在结构写入前被拒绝
  • 范围和 Excel 表格报告 band 共用 ErrorMode、StrictDataAccess、RuntimeLimits 及不可变 LastResult 诊断;WriteAndContinue 会将可显式恢复的行失败连同其输入行和实际输出地址存为文本字面量,再继续其余目标和行,而致命结构和资源失败会回滚扩展
  • 支持采用原始值或显示文本回调的单元格和行扫描、模板查找替换以及批量写入
  • 集中式临时文件管理(注册临时文件会在 finalize 时清扫)、可选 VerifyEncryptedSave 写后解密检查,以及数据集导出器中按格式定义的网格限制常量和 OnExportLimit 事件
  • 数据验证辅助方法支持用字符串数组一键创建列表下拉框,Classic XLS 与 XLSX 共享类型化 IME 模式,表格公式保留独立数组属性,条件格式扩展,带集中 CSS 样式类的可配置 HTML 导出,以及 AES 加密保存和加载:带 AES-NI 加速的 ECMA-376 Standard Encryption(AES-128),以及读取 Excel 默认 Agile Encryption(SHA-512 密钥派生、AES-128/192/256)
  • Classic 和 XLSX HTML 导出器使用操作自有的 xlsrgbHtml 几何快照,将字符宽度按 Normal 字体最大数字宽度指标转换为固定 CSS 长度,为多工作表操作复用一个有界缓存,公开活动快照以供诊断,并保留已存储的工作表尺寸
  • 预备式 XLSX 条件格式求值支持优先级和 StopIfTrue 分层、相对公式、共享多区域统计、Top/Bottom 和平均规则、重复和唯一值、相对日期周期、主题感知差异样式、颜色刻度、定向数据条和所有内置图标集系列
  • 容错 XLSX 打开:解析时规范化命名空间前缀,因此绑定到非规范或 ISO 29500 strict 命名空间的工作表、图表、绘图和文档属性可像普通文件一样加载,且行或单元格省略位置属性的工作表会在扫描顺序中将每个单元格推断为其前驱之后
  • 通过 StrictOOXML 提供严格 Open XML 输出:整个 XLSX package,包括工作表、共享字符串、样式、主题、绘图、图表、注释、文档属性和保留 part,都会以 purl.oclc.org 词汇表按 ISO/IEC 29500 strict 一致性保存,strict 关系类型在打开时也与 transitional 类型一样解析
  • 完整 Workbook XLSX 打开会将工作表 ZIP entry 直接流送至 worker 本地 inflater 和 XML reader,不保留已解压工作表 XML 的暂存副本,并将瞬态工作表输入内存限制在活动解析 worker 范围内
  • 流式直接读取器(TXLSDirectReader)会逐单元格扫描 .xlsx / .xlsm,通过单元格和工作表事件为超大 Workbook 提供近似恒定的内存占用,报告每个单元格的值、种类、公式文本和样式索引,可选日期检测,提前中止会传播到 ZIP 输入和解压,支持行范围下推以及值解码前的常数时间列投影;可选择启用的布局事件会在依赖单元格之前公开工作表尺寸、默认大小、列跨度、行元数据、冻结或拆分窗格和合并范围;有界并行解析会将 worker 本地工作表 inflater 流送到独立预算的生产者-消费者队列,同时在调用线程上保持回调顺序,富字符串保留会公开格式化 run、语音范围和语音属性,有界共享字符串存储会将小表保留在内存中,同时将较大的表和富 payload 迁移到带索引且关闭即删除的临时存储
  • 流式直接写入器(TXLSDirectWriter)逐单元格生成 .xlsx Workbook,在行到达时将每个工作表直接写入 package,因此能以近似恒定内存生成超大文件,涵盖内联或去重共享字符串、含格式化和语音 run 的富字符串、数字、布尔值、日期、公式、带克隆 handle 的可复用 package 级单元格样式、去重字体/填充/边框/数字格式、字体强调、下划线、轮廓和阴影、19 种填充图案、五条边上的 14 种边框样式、水平和垂直对齐、换行、缩小填充、缩进、旋转、引用前缀、锁定/隐藏保护、内置和自定义数字格式、列宽、行高、隐藏行和列、合并范围、工作表和表格 AutoFilter 范围及其值、空白、日期分组、自定义、动态、Top/Bottom 筛选和排序状态、具备细粒度权限的工作表保护、传统或现代密码元数据及可编辑保护范围、Workbook 结构和窗口保护、冻结窗格、工作表标签颜色、从右到左的工作表视图、工作表视图显示开关、页边距、页眉/页脚文本、打印选项、页面设置、适合页面设置、手动分页符、跨多个工作表的工作表超链接、Workbook 和工作表本地已定义名称、生成的定义范围、打印区域、打印标题行/列、带提示和错误警报的数据验证、包含八种单元格值运算符、表达式、文本匹配、Top/Bottom 排名、平均、重复/唯一、空白/错误谓词、数据条、双色和三色刻度、17 个图标集系列、差异字体/填充样式、优先级和停止为真控制的条件格式、含列名、表头/汇总行标志、表格注释、汇总行列标签和函数、计算列公式、汇总行公式及表格样式显示选项的 Excel table part,以及适用于传统注释、流式图像来源、锚定 DrawingML、类型化公式支持图表和调用方提供 ChartML 的当前工作表 side channel
  • 可选择启用的溢出续接(AutoSplitRows)会在行超过工作表限制时将导出拆分至 <name>_2 工作表,FillTableCalculatedColumn 则会像 Excel 的编写行为一样将表格列公式推送到每一数据行
  • 通过 BeginPatch 支持原位工作表修补:流式写入器重写现有 package 的一个工作表,同时以原样压缩字节复制每个未触及 part,可替换数据工作表或追加新工作表而无需重新编写模板;初始化和收尾失败时会释放源句柄,临时源注册仍由调用方负责,写入器在初始化失败后可以复用
  • 通过 AddCamera 支持相机对象:绑定到单元格范围的实时快照图片,遵循文档化的相机工具绘图扩展;该绑定可在保存和重新打开时往返保留
  • 通过 AddAttachment 支持 PDF 附件,文件会作为带名称树的 /EmbeddedFiles entry 随导出携带,IXLSPDFAttachmentSource 可通过有界 spool 在每次保存时延迟提供每个 payload 一次;最终装配会按顺序将对象流送至目标,因此附件 payload 以固定块复制,使用间接长度对象且峰值内存保持平稳
  • 通过 PDFAProfile 显式输出 PDF/A-1a、1b、2a、2b、3a 和 3b,包括与 profile 对应的标识、色彩管理、标记、附件和原子验证规则;UsePDFA 仍是 PDF/A-2b 的兼容性开关
  • PDF 导出可使用 Classic 布局,或选择使用带压缩对象流和二进制交叉引用流(UseXRefStream)的 PDF 1.5 布局以减小文件体积
  • PDF 导出支持可复用的开始、页面和结束进度回调,支持取消且不会提交部分流,还支持可选的按单元格定位的 Unicode 注释标注,可与页面末尾注释页共存
  • PDF 渐变和透明度使用原生轴向或径向 shading、拼接式多停靠点函数、逐停靠点 alpha mask、单元格填充图案、图像阴影、页面级裁剪和文档级资源缓存;选定的 PDF/A profile 会在提交输出前应用其图形限制
  • 通过 SetFontFallbackChain、AddFontFallback 和 ClearFontFallbackChains 提供样式感知的 PDF 字体后备链,按源字体族、样式层级和字形覆盖选择嵌入字体,缓存已加载字体和选择结果,保留补充平面标量和跨 run 的字素簇,通过 CID 映射保持共享字形 Unicode 序列的区分,并在 PDF/A 输出时原子拒绝使用未嵌入字体
  • TXLSPageImageExporter 一次构建分页,并可将选定 XLS 或 XLSX 页面以 PNG 或 JPEG 逐页增量导出,支持可配置 DPI、缩放、质量、进度、取消和逐页 bitmap 生命周期;ExportRange 写出一个紧凑单元格矩形,绘制前后事件通过只读上下文公开实际页面 canvas,含像素边界、页面大小、分辨率、缩放、页码和源工作表,并会为每个渲染帧恰好触发一次,包括多页 TIFF frame
  • TXLSCellImageExporter 可测量、渲染并将任意 Classic 或 XLSX 单元格矩形保存为单张紧凑图像,避免分页伪影,支持可配置分辨率、缩放、格式和 JPEG 质量、透明 PNG 或彩色背景、独立的对象/网格线/单元格边框开关、分配前验证的像素和字节预算,以及通过同文件夹原子替换保存文件,失败时绝不会损坏现有目标
  • ODS 导出把受支持的标量公式、限定 A1 引用、自定义布尔验证、公式值边界和列表来源转换为 OpenFormula;不受支持的单元格公式方言保留兼容回退,不受支持的验证定义和引用则一并省略
  • 重复的 ODS 行高和空白单元格样式使用紧凑范围表示;ODS 输出会保留行高和重复的带样式尾部,而单行编辑、清除、工作表复制、行移位、平铺和 XLSX 导出都会保留有效行高
  • 拉取模式的行供应(OnNeedRow + RunRows)会从数据管道逐行驱动流式写入器
  • 从右到左的工作表会在 PDF 导出中镜像,并在 HTML 中通过 dir="rtl" 翻转,从而完成显示标志往返
  • 工作表零值显示模式会在 number formatting 或 text measurement 之前,于查看器和视觉导出中隐藏实际的数值零,包括公式结果、货币值和日期基准零;公式显示模式优先,条件格式视觉效果和超链接仍保持活动,已存储值、公共格式化文本、CSV 和 ODS 输出则保持既有契约
  • 可选择启用的跟踪列宽流式模式(TrackColumnWidths)会在内存中暂存工作表,使完成的文件携带已用区域 <dimension> 提示以及按每列所见最长值确定的列宽,为仅在流式过程中才获知的数据近似实现自动适配
  • 引用安全的 XLSX 行列结构编辑会在一次受保护 transaction 中更新公式、已定义名称、规则、链接、绘图、打印设置、保护范围、传统和线程化注释锚点、迷你图、类型化 pivot 源和视图以及可识别的保留扩展引用,并提供有序 participant API 以处理应用自有元数据
  • 紧凑随机访问 XML 树(TSimpleDomReader)使用同一 pull reader 单遍构建,可按区分大小写的 QName 或 local-name 路径查询 Workbook 元数据、关系、主题和其他 package part
  • 通过 TXLSFormulaTracer 提供带精确操作数栈转换的分步公式求值,并通过 TXLSFormulaDebugger 提供交互式诊断,公开已解析节点、操作数值、求值顺序、单元格和范围依赖、延迟分支选择、跳过的表达式和传播的错误来源
Version 2.384.120

完整的工作簿、报表和渲染能力集

当前版本扩展了受支持的工作簿、报表和渲染 API,并提供有界执行路径和明确的格式安全规则

工作簿格式与计算

  • 可通过 TXLSXXmlMaps 和 TXLSXXmlCellBindings 编辑 XML Maps 和单元格架构绑定,支持关系往返保存和保存前验证
  • 通过 TXLSXWorkbookViews 管理有序的多窗口工作簿状态,包括活动选项卡、几何位置、可见性、显示标志、扩展以及安全的工作表索引重映射
  • XLS 和 XLSX 支持多区域选择和独立的每窗格活动单元格,并提供结构重映射和对无效范围的原子拒绝
  • 调用方拥有的无损公式令牌:通过 TXLSFormulaTokenStream、ParseFormulaTokens、GetFormulaTokens、FormulaTokensToText 和 SetFormulaTokens 实现
  • 经典 XLS 公式冻结可在不反编译公式文本的情况下分类已编译的 BIFF 引用,在 OnlyExternal 模式中仅转换已确认的外部工作簿引用,保留不确定的公式,并以原子方式冻结数组组且不破坏字面字符串结果
  • XLSX 外部工作簿公式使用一个感知语法的数字槽位词法分析器,完成严格转换、诊断、重新计算、跨工作簿复制和生成保存,仅当恰好有一个已注册目标匹配时才规范化文件名兼容性
  • TXLSXExternalLink 公开源关系 ID、从一开始计数的槽位,以及工作簿、DDE、OLE 或未解析链接类型;目标和工作表列表变更会通过常量时间的修订更新使已编译的外部绑定失效
  • ConvertExternalDefinedNamesToRefErrors 会在 Classic XLS 和 XLSX 中以原子方式将已确认的外部工作簿定义替换为原生 #REF!,同时保留名称标识、作用域、可见性、批注、宏和内置元数据、未知 XLSX 属性、普通单元格公式以及外部链接部件
  • 稳定的行或列排序支持 TXLSSortFormulaMode、水平键、自定义比较器,并可选择保留逻辑依赖关系或物理移动公式
  • 在加载过程中,可编辑的 BIFF2 至 BIFF4 字体、数字格式、XF 样式和公式会转换到当前工作簿和计算模型
  • 一个 TXLSForwardReader 回调外观统一 XLS、XLSX、CSV 和 TSV,支持后端级投影、行边界、公式存在状态、可选的公式文本隐藏、格式检测和取消
  • 为窗格、选择、筛选、页面设置和分页符提供强类型自定义视图,同时未知 BIFF 记录保留其原始载荷
  • 强类型 OLAP 属性、Web 表选择器、定宽字段和连接参数,并保留扩展内容
  • AnalyzeFormulaIssues 可诊断缺失函数、外部工作簿引用和精确的循环依赖组件
  • 线程安全的全局与工作簿本地 UDF 注册表支持本地覆盖、平均 O(1) 查找以及锁外处理程序调用
  • XLSBidiVisualOrder 可处理混合的阿拉伯语或希伯来语文本、拉丁文本、数字、组合标记和镜像标点,而不改变单元格文本的逻辑顺序
  • 合并单元格 AutoFit 策略可将增长分配给第一个或最后一个成员,或在跨区间平衡分配,适用于 XLS 和 XLSX
  • 强类型 Excel 4 宏工作表保留,以及仅检查的 ScanMacroCommands 发现结果,均带有工作表地址
  • 支持 ISOMITTED、ARRAYTOTEXT、VALUETOTEXT、PDURATION 和 RRI 计算,具有与 Excel 兼容的存储和错误行为
  • 通过 TXLSXWorksheet.Subtotal 创建分组工作表汇总,包括插入公式、可配置总计、继承的可见格式和分级显示层次
  • 通过 GetCellVisibleFormat 进行不实体化的有效样式检查,并通过 CheckDataValidation 进行候选级验证和原子提交
  • 经典 XLS 的仅元数据和选择工作表打开使用 BOUNDSHEET 偏移、有界 SST 溢出存储,以及与 XLSX、CSV 和 TSV 共用的前向读取约定
  • 动态数组直接流入标量聚合,重复查找复用强类型增量范围缓存,不可变公式令牌在各次编译之间共享无状态对象
  • 原生本地数据透视表具体化支持紧凑、表格和大纲报表网格、重复标签、默认小计位置和多个度量轴,缓存单元格和传输元数据已对照 Excel 打开和显式刷新验证
  • 原生数据透视表显示计算包括基项比较、累计总计、行和列百分比、父级百分比、累计百分比和密集排名,带有原生缓存输出和刷新元数据
  • REGEXTEST、REGEXEXTRACT 和 REGEXREPLACE 使用共享公式预算的内置 UTF-16 后端;GROUPBY 和 PIVOTBY 支持作用域回调、多个度量、筛选、排序、分层总计和相对百分比
  • 区域清除和 Unicode 文本粘贴使用单个有界撤销或重做事务,包含保护检查、稀疏内容快照和恢复的现代单元格元数据
  • 类型化的本地 PNG/JPEG 单元格内图像以及稀疏的单元格、行和列 Checkbox 格式在 XLSX 往返中保留辅助功能元数据、优先级、样式、内容所有权和结构编辑
  • 扩展的 XLSB 读取和写入保留受支持的公式和缓存、名称、合并、超链接、窗格、表格和筛选器,并带显式的不受支持功能预检
  • 原生 Linux x64 和 macOS ARM64 工作簿 API 使用真实平台服务加载、编辑、计算和保存受支持的 XLSX、XLSB 和 ODS 文件
  • 原生经典 BIFF8 工作簿在 Linux x64 和 macOS ARM64 上支持编辑、计算、大型嵌套复合容器、文档属性以及标准 RC4 或 128 位 CryptoAPI 输出
  • 原生数据透视表输出在受支持的报表布局中支持数值、日期和手动分组以及十一种自定义小计函数
  • 工作簿比较保留严格值类型和精确大整数、有限数值容差、可选公式缓存、有效样式、几何、富文本和有界受支持功能定义(包括本地数据透视表、Slicer 和 Timeline 状态),同时在失败时保留稀疏存储和先前结果
  • ODS 保留普通批注文本和作者、可表示的值和自定义筛选器以及等效的无密码保护,并提供精确的转换损失报告;取消的流保存保留目标,非零位置的保存保留有效 ZIP 偏移
  • FORMULATEXT 读取存储的表达式而不求值其目标,GETPIVOTDATA 从跨 XLS、XLSX 和隔离求值器的有界分离本地缓存查询受支持的可见聚合;原生 XLS 内联缓存值和报表筛选器引用保留其标识,不完整或不受支持的缓存产生显式错误
  • INDEX、SORT 和 UNIQUE 接受计算数组和常量,因此筛选、排序、去重以及行或列提取可直接与自动 XLSX spill 调整大小和固定区域 CSE 计算组合;INDEX 接受行、列和区域选择器数组,具备方向感知广播和逐单元格类型化错误,对计算来源接受区域 1,并通过定义名称、LET 和标量 CHOOSE 保留受支持的标量多区域引用标识;示例和边界参见 INDEX 区域选择
  • 命名样式保留链接的格式部件和本地覆盖,而每个内置的浅色、中等和深色表样式都会解析为编辑和导出路径使用的有效格式
  • 统一绘图外观可对 DrawingML 对象分组或取消分组,并重新排序混合图像、图表、文本框、已保留锚点和嵌套组而不丢失关系
  • TXLSFormatSnapshot 可独立于源工作簿捕获完整的经典格式,IXLSRange.ApplyFormat 可将其应用于单元格、行或列
  • 经典和 XLSX 工作簿公开相同的流式 SaveSemanticSnapshot 和增量 SHA-256 ComputeSemanticHash API,提供 Content 和 SecurityComplete 配置文件,以及明确的查看器状态、易失性元数据和公式缓存选项
  • 新 XLSX 工作表以压缩 RLE 存储保留兼容的行优先强类型批量写入,无需实体化即可回答存在性和存储统计查询,仅在对象级访问需要时一次性扩展为稳定单元格对象
  • 经典和 XLSX 单元格存储与工作表集合公开独立的结构代次,因此长时间运行的读取器可检测拓扑变更,而不会将值、公式、格式、重命名或激活编辑视为结构失效
  • 单元格句柄保持默认样式状态无需分配,完全相同的仅样式空白单元格共享带引用计数的载荷,通过写时复制隔离后续本地编辑,并在存储统计中计量避免的字节数

编译式报表和数据组合

  • TXLSCompiledReportTemplate 可在单元格、富文本、批注、线程批注、超链接、绘图、图表、页眉、页脚、工作表名称、已定义名称和文档属性中一次性编译占位符
  • TXLSCompiledReportBand 可从有界的单遍数据快照扩展已定义名称的行、列和交叉表带,同时保留公式、依赖对象和明确的轴元数据
  • TXLSCompiledTableReportBand 可扩展单行 Excel 表模板,同时保留标题、总计、筛选、排序、公式、样式、结构化引用以及安全的实际零行结果
  • IXLSReportTable、IXLSReportCursor、IXLSReportRandomAccessTable 和 TXLSReportMemoryTable 为虚拟和内存源提供统一约定
  • TXLSReportRelationIndex 一次构建精确强类型复合键桶,实现平均 O(1) 的主从查找而不复制行载荷
  • IXLSReportTableProvider 和 TXLSReportDataContext 注册显式和惰性表,BeginRun 创建隔离的 IXLSReportDataSession,具有不区分大小写的哈希查找、负缓存、确定性的提供程序错误缓存以及立即检测同别名递归;编译模板、运行器、范围带和 Excel 表带会在每个逻辑运行中自动使用一个会话,两个 PreprocessAndRun 过程共享同一快照,并发运行彼此隔离,且每一条成功、取消或失败路径都会在返回前释放快照
  • TXLSReportDataRequest 和 IXLSReportDataResolver 增加带有有序强类型参数、源元数据、只读运行控制及明确未处理、已解析、未找到或数据错误结果的命名或用户请求;解析器以不区分大小写的提供程序键注册以实现 O(1) 分派,旧提供程序通过适配器保持兼容,显式表仍具权威性,并且运行会在第二次解析器调用前拒绝同一别名的冲突指纹
  • TXLSReportDataLimits 限制缓存别名、命名和旧式提供程序、表架构、名称、参数、字符串和错误消息;格式错误的源坐标、控制字符、重复参数名、不支持的 Variant 容器、无效结果组合、递归以及解析期间的取消都会在目标提交前失败,而取消会移除未完成的缓存条目以便干净重试
  • TXLSReportTableFactory 提供惰性 top、投影、并集和拆分游标,以及行计数、最小值、聚合和保留重复项的哈希连接
  • TXLSReportQueryProvider 仅向模板公开已注册的只读查询定义,并将强类型参数和有界超时传递给宿主执行器
  • TXLSCompiledSheetReportBand 和 TXLSCompiledOverflowReportBand 从前向游标创建感知依赖关系的逐记录工作表和有界续页工作表
  • TXLSReportIncludeLibrary 解析递归命名包含项,确定性地报告循环,并冻结为不可变的可复用库
  • 编译式报表条件、查找、正则表达式和动态公式复用已解析的表达式节点和已解析的列索引
  • TXLSReportDynamicFormat 和 TXLSReportFormatEvent 可按编译目标粒度应用记录感知的数字格式、行高和列宽
  • IXLSReportImageDataProviderV2 和 TXLSReportImageBinder 从有界字节或自有流解析强类型图像目标,并提供稳定的工作表、报表带、表、逻辑行、游标行、只读当前行、锚点、变换、取消和大小限制上下文;运行器、生成器、范围带和 Excel 表带直接绑定每个目标,无需扫描生成的工作表单元格
  • V2 报表图像从有界 PNG、JPEG、GIF、BMP、EMF 或 WMF 头部派生物理尺寸和 DPI,支持 Natural、居中 Contain、裁剪 Cover 和 Stretch 适配,在变更前拒绝不安全的光栅几何,并在 XLSX 和 ODS 往返中保留相对锚点偏移
  • IXLSXImageBlob 和 TXLSXImageBlob 让重复图像共享一个不可变的光栅和 SVG 载荷,带一次性 SHA-256 摘要和可选缓存键;XLSX 和 ODS 可跨工作表复用不同媒体载荷,并在重新打开时恢复共享载荷
  • 感知依赖关系的图表重新绑定会在范围带和工作表带扩展时转换系列、公式、名称和锚点
  • TXLSCompiledReportRunner 报告开始、目标、保存和结束阶段,支持取消、流和原子文件输出、精确的已应用计数,以及跨隔离数据会话的可复用执行;ErrorMode 选择兼容的停止行为,或继续处理明确强类型的数据、提供程序、除零和无效正则表达式失败,StrictDataAccess 公开缺失数据而不是旧式空白或哨兵计数,不可变的 LastResult 快照会在运行器复用期间保留有序运行时问题和终止状态
  • 报表流、文件和加密文件输出使用一个暂存事务;致命、取消、序列化、部分流写入和文件替换失败均会保留完整的原目标,成功的未加密输出保持源工作簿格式,大型流回滚快照会溢写到受管理的临时存储
  • 目标流为空时,报表输出会跳过备份快照,同时保留输出失败时回滚目标内容和位置的能力
  • 编译目标先求值,再进行动态格式化,然后以原子方式提交内容、数字格式、行高和列宽并精确回滚;可恢复的单元格诊断会清除公式、保留其余基础样式,并在相等基础字体之间共享池化红色字体和黄色填充派生样式,而安全的非单元格目标保留原值,结构目标仍保持快速失败
  • TXLSReportRuntimeLimits 在目标变更前限制保留的问题数、净化后的消息长度和问题内存;消息为单行且会隐藏常见凭据,RuntimeDiagnosticsSheetName 可选地写入一个结构化诊断工作表,并可随生成的工作簿往返保存
  • TXLSReportGenerator 负责工作簿、文件、流和加密文件模板的完整读取与生成生命周期,提供成对事件、稳定工作表上下文、安全取消、原子克隆输出隔离,以及与编译运行器相同的可恢复错误和不可变结果约定
  • CloneRangeTo 可克隆选定单元格和带标识的依赖关系,支持混合引用转换、重叠预检和固定源的线性重复平铺;整轴的条件格式和数据验证目标会跟随结构性编辑以及完整包含各目标的克隆,整行、整列和整表单元格复制保留稀疏存储和安全的重叠源快照;相交的虚拟样式叠加同样会复制并重新映射而不展开空白坐标,复制矩形之外的目标叠加格式保持不变
  • TXLSReportPaginationPlanner 提供固定页脚、保持在一起的组、行拆分、合并相似跨度和均衡的报表列
  • 编译式报表分析、严格执行和 WriteDiagnostics 会以目标种类和精确地址报告格式错误的占位符和缺失值
  • TXLSReportTemplateChecker 和 TXLSReportTemplateMigrator 复用编译器语义以验证模板并转换受支持的旧式占位符形式

无障碍、矢量、图像和 Web 输出

  • TXLSPDFTagMode 和 DocumentLanguage 可生成自动 PDF 结构树,其中包含表、行、语义化表头和数据单元格、带 Unicode 替代文本的说明性 XLSX 图片 Figure、密集的逐页标记内容标识符、合并单元格跨距、精确父树,以及对装饰图片和其他非语义绘图的工件隔离
  • TXLSPDFSignature 支持可见或不可见的签名字段、包含、覆盖或拉伸的 PNG 外观、宿主提供的 CMS 数据、摘要回调、已修补的字节范围,以及不存储私钥的明确 DocMDP 认证策略:禁止修改、允许填写表单和签名,或允许填写表单、签名和注释
  • TXLSPDFAProfile 选择 PDF/A-1a、1b、2a、2b、3a 或 3b,并在输出提交前进行配置文件验证;PDF/A-3 关联文件通过详细的 AddAttachment 重载携带 Unicode 名称、MIME 类型、描述、字节大小、修改时间,以及 Source、Data、Alternative、Supplement 或 Unspecified 关系
  • 可复用的 PDF 开始、页面和结束进度及取消功能可防止产生不完整的目标流
  • 感知样式的 PDF 字体回退链会缓存字形覆盖范围和嵌入字体,同时保留增补字符、字素簇和提取映射
  • 上下文复杂文本整形会在字形输出前应用连字、组合标记定位、阿拉伯语连接和源簇映射
  • 原生轴向和径向多色标 PDF 渐变、逐色标 Alpha 遮罩、单元格填充图案、裁剪和图像阴影复用缓存的图形资源
  • 单元格批注可成为定位的 Unicode PDF 文本注释,同时仍可输出文末批注
  • TXLSSvgExport 可用矢量文本、选择启用的安全链接、图表、形状和图片渲染范围、工作表、工作簿、页面和命名对象;页面回调每次返回一个完整 SVG,确定性的 ID 前缀隔离嵌入文档,共享页面渲染器绘制 Excel 单元格填充、折叠边框、逐单元格字体与对齐、缩小以适应和相邻单元格溢出
  • TXLSPageImageExporter 在增量生成选定 PNG 或 JPEG 页面时复用一个分页会话,或将选定页面以原子方式写入一个 LZW 压缩的多页 TIFF
  • TXLSGraphicsBackend 和共享分页几何统一预览、打印、PDF、SVG、图像、HTML 和对象放置,而序列化器保留格式特有的编码
  • 有界 EMF 和 WMF 解码器会验证记录封套并在通过共享 Canvas 和 SVG 几何重放安全子集前拒绝转义记录:DC 状态栈、窗口、视口和世界变换,带库存对象的画笔、刷子和扩展画笔对象表,矩形、椭圆、折线链、多边形、贝塞尔曲线,包含填充、描边和组合过程的路径括号、圆角矩形、圆弧、弦、扇形和角度圆弧,区域填充和边框,带字体和对齐的有界文本运行,以及重编码为 PNG 的 stretch-DIB 图像;裁剪和私有记录不在白名单内,会以关闭方式失败并进入有界光栅回退
  • 经典和 XLSX HTML 导出器提供具有语义化行列标题和强类型纯 CSS 热跟踪的明确电子表格视图;外部链接共用一个 URI 清理器,会拒绝 script、data、blob、file、UNC 和控制字符目标
  • XLSX 日期轴图表将工作簿序列号作为连续坐标,保留 1900 闰日兼容槽位,遵循 1904 日期系统,并在共享分页、SVG、PDF、图像、预览、打印、查看器和 HTML 渲染中按实际日、月或年推进刻度;省略单位会在所有可见系列中只推断一次,自动密度使用可见跨度、轴宽、测得的标签字体、数字格式和旋转,配置的主次网格线复用相同的有界刻度集合
  • XLSX 日期轴模型为基础、主和次日历单位及日期轴自动类别标志保留独立的存在状态,因此省略的 ChartML 元素保持省略,而明确的日单位和 false 布尔值可往返保存;强类型 Classic 日期轴扩展字段保留每个原始值和标志,同时活动值可映射到 XLSX 坐标轴模型
  • 多级类别轴保留叶优先的稀疏缓存和实时二维范围,继承省略的标签并将明确的空标签视作边界,仅在其父级跨度内合并相等标签,遵循反向和从右到左顺序以及隐藏类别,并公开 NoMultiLevelLabels 以输出单级标签
  • 由单元格提供的图表数据标签会为每个系列保留独立公式和索引缓存,每个工作簿代次仅刷新一次本地工作表显示文本,保留外部缓存而不进行隐式访问,在工作表复制和报表扩展中转换公式,并在分页、SVG、PDF、图像、预览、打印、查看器和 HTML 渲染中遵循共享和逐数据点可见性
  • 经典 XLS 和 XLSX 工作簿共享无损的三态对象显示策略;隐藏对象会在范围扩展和媒体工作前排除,查看器渲染轻量命名占位符,PDF、SVG、位图、打印和 HTML 导出器可选择启用占位符输出,而默认保留完整对象输出
  • 手动图表布局保留独立字段存在状态和无效源令牌,通过有界且保持大小的放置解析因子和边缘模式,区分内部和外部绘图区目标,在分页、SVG、PDF、图像、预览、打印、查看器和 HTML 输出之间共享标题、图例、绘图区和坐标轴标题几何,并通过绝对图表距离转换受支持的 ODF 位置
  • XLSX 日期轴保留标签数字格式和源链接状态,应用坐标轴文本样式和顺时针旋转,遵循反向方向,并在分页、SVG、PDF、图像、预览、打印、查看器和 HTML 渲染中为重复和稀疏日期保持连续间距
  • 公式显示模式在工作簿查看器、预览、打印、图像、EMF、SVG、PDF、Classic HTML 和 XLSX HTML 路径中解析相同的考虑受保护单元格的最终文本、对齐和有界双倍有效布局宽度,而不改变存储的值、公式缓存或列宽
  • 由平坦度驱动的自适应三次贝塞尔圆弧在 PDF、SVG 和图像输出中共用一个精度约定,仅当缩放或偏心率要求时才分配额外线段
  • PDF 大纲支持嵌套 Unicode 书签、颜色、粗体或斜体文本以及展开或折叠的后代,并提供背景和叠加层页面回调
  • 已解析的命名和内置表样式无需实体化空白单元格即可流入共享的 HTML、PDF、图像、预览和查看器格式
  • TXLSSvgExport.SaveObjectAsSVG 在精确对象边界中渲染一个命名图表、图像或形状,无需裁剪整页
  • HTML 导出将图表和形状作为内联 SVG 输出,并保留 SVG 图片、绘图锚点、链接和受支持效果,而不将整张工作表栅格化
  • TXLSXHtmlExportSession 一次扫描共享样式,然后以进度、取消和重置功能增量导出工作表
  • TXLSImageRenderEffects 会在各图形后端一致地应用裁剪、亮度、对比度、伽马、旋转、不透明度和阴影
  • 预设形状、调整、标注、流程图、文本框和 WordArt 在输出格式间共用矢量几何
  • 高级图表渲染覆盖误差线、趋势线、日期轴、数值间距、采用自定义优先组件顺序的单元格数据标签,以及金融高低线和涨跌柱
  • 密集图表和饼图标签在最终矢量输出前获得确定性的碰撞调整和引导线布线

可直接用于应用程序代码的 XLSX 功能

XLSX API 现已覆盖实用的工作簿生成、报告输出和工作簿修改场景,而不再仅限于简单的单元格写入

  • 工作表结构单元格、公式计算、整范围和跨范围合并,并提供直接的合并范围查找/删除,行高和列宽及有界 AutoFit,分级显示、隐藏行和列、冻结窗格、活动工作表状态、隐藏和非常隐藏的工作表
  • 样式与呈现字体、填充、边框、数字格式、对齐、富文本、主题色、索引颜色、明暗度、对角线边框以及可复用样式池
  • Excel 对象带单元格查找和范围删除辅助方法的超链接与注释,带锚点查找和范围删除辅助方法的图像与独立绘图文本框,带范围感知查找和删除辅助方法的条件格式与数据验证,带按名称查找和删除辅助方法的 Excel 样式表格,带直接列查找和删除辅助方法的 AutoFilter 条件,带标题查找和删除辅助方法的图表对象,图表工作表,带作用域查找和删除辅助方法的已定义名称,通过 HasVbaProject / VbaProjectDefined 查询以及现有模块源码检查和编辑来保留 VBA 项目,还有带目标查找和删除辅助方法的外部工作簿链接
  • 页面与元数据支持工作表视图模式、打印区域、标题行和列、网格线和标题打印选项、带索引查找和范围删除辅助方法的手动分页符、Date1904 工作簿、文档属性、应用程序元数据以及基于流的保存/打开

从同一工作簿数据输出多种格式

HotXLS 不局限于二进制 Workbook 文件,当前 API 为常见集成和报告目标提供直接导出路径

XLS Classic Excel 97-2003 工作簿的读取、写入和修改,带自有快照的恒定状态已加载单元格游标、可选的独立样式空白单元格和快速失败的拓扑验证,从文件或流快速发现工作表名称、按名称查找工作表、窗格辅助方法、工作簿活动选项卡、保存者元数据、VBA payload 加载/保存/清除辅助方法以及现有模块源码检查和编辑、窗口几何与状态控制、选项卡、滚动条、AutoFilter 日期分组控制、工作表视图、网格线颜色和冻结窗格 Window2 标志保真、分级显示样式控制、工作表保护权限、页面设置标志及有界的字节级精确 BIFF 打印机驱动 payload 保留、复制隔离的公共 payload 访问、优先使用类型化字段的 XLSX 转换、多键范围排序、内置单元格样式、文档属性和导出工作流
XLSX OOXML 工作簿生成,公式计算具备更广的函数覆盖、覆盖完整 1,048,576 × 16,384 工作表网格的 A1 引用,并支持 OnUserFunction/OnUserFunctionEx,基于实体化稀疏块或紧凑存储且带自有快照的恒定状态已加载单元格游标、可选独立样式空白单元格和快速失败的生命周期验证,已加载单元格扫描和回调写入,针对报告列宽和行高的有界 AutoFit 限制,通过 SaveXLSXWorkbookAsXLS 实现确定性稀疏 XLSX-to-BIFF8 转换并保留锁定的索引颜色、加权 OKLab 调色板量化和预检的类型化打印机设置,工作表打印设置 part 的字节级精确保留以及复制隔离的公共 payload 访问、精确清除语义和悬空关系诊断,兼容 Excel 的 AES 加密保存和加载(ECMA-376 Standard Encryption),具备 AES-NI 加速和软件后备,通过 HasVbaProject / VbaProjectDefined 查询以及现有模块源码检查和编辑来保留 VBA 项目,模板文本查找/替换、可配置工作簿/范围 HTML 导出、直接 AutoFilter 条件查找/移除和预览求值、直接嵌入图像锚点查找/移除、范围感知条件格式和数据验证查找/移除,以及通过专用 lxHandleX 外观接口的往返支持
XLSB 经过验证的值和基础样式通过 XLSX 外观层提供,包括类型化数字、布尔值、Unicode 文本、普通错误、带样式的空白单元格、工作表可见性、普通视图、行和列尺寸、页边距、ZIP 压缩和确定性时间戳;完整的 package 暂存和强制功能检查会在提交到目标前拒绝不受支持的公式、名称、功能对象和非默认计算设置
ODS OpenDocument Spreadsheet 导入支持 styles.xml 数据、行/列尺寸、继承的单元格样式、基本公式转换、工作表保护、命名范围、无类型缓存标量值、日期的小数秒和负时间长度,通过 SaveAsODS 完整导出,将类型化单元格值、公式、富文本、合并范围、超链接、图像、图表、条件格式、数据验证、冻结窗格、打印范围、分级组合和可选 TODSExportOptions 控制写入有效 ODF package
CSV / TSV 通过 OpenCSV 导入分隔文本,支持自动分隔符探测、BOM 编码检测、RFC 4180 引号、可选值类型推断、逐列导入指令和固定宽度切分,还提供带流和文件重载的 Workbook、工作表和范围导出辅助方法以及空格填充的固定宽度输出
HTML / RTF / PDF 面向报告、预览、电子邮件正文和文档交接的表格导出,包含所选范围片段、可配置 HTML 标题、表格布局属性、超链接锚点、注释工具提示、垂直对齐样式、富文本运行段样式、条件差异样式和数字格式、颜色刻度、定向数据条、图标系列字形以及精简表格输出,TXLSHTMLImport 会以显式小数分隔符在一个基于一的目标单元格处导入一个选定顶层表格或所有表格,同时保留原有全表格重载,SaveWorkbookAsHTML 会将每张可见 XLSX 工作表发布到一个带稳定逐工作表锚点和已转义工作表名称的可导航文档中,RTF 也可通过 OpenRTF 重新导入,默认将表格单元格或段落列表映射至 A1,或通过扩展重载映射至显式的基于一目标行和列,工作簿 SaveAsPDF 会将所有可见工作表合并为一个文档,渲染纯色和条件填充、颜色刻度、数据条、条件图标、字体颜色、大小、粗体、斜体和下划线强调、对齐、显式边框和可选网格线,并遵循打印区域、纸张大小或自定义点精确纸张尺寸、方向、页边距、缩放、适合宽度设置、列宽、行高、手动分页符、重复标题行和列以及左/中/右页眉和页脚,包括 &F 文件名和 &Z 路径字段代码及可选页眉或页脚带隐藏,同时在两个轴向为宽和高范围分页;CalculatePageCount 无需构建 PDF 对象即可报告完整逻辑页数,基于一的 FirstPage 和 LastPage 可在保留总页数字段的同时选择输出范围,TXLSPaginationModel 将这些决定公开为可重用的 XLS 和 XLSX 逻辑页面,用于 VCL 打印预览、PDF 导出、自定义画布和 EMF 输出,包含重复标题、先横后纵或先纵后横的排序、10% 至 400% 的适合缩放和绘图位置
Portable PDF / SVG / PNG 原生可移植渲染传输分离的标量和场景快照,保留绘制顺序和裁剪,并使用带显式字体文件的有界 Cairo 渲染;工作簿打印计划应用打印区域、标题、页面设置、分页符和缩放适配,无需重新计算或修改来源

为何使用它

HotXLS 将电子表格生成保留在 Delphi 或 C++Builder 进程内部,因此适用于桌面工具、批处理工具、服务和安装程序等 Office automation 脆弱或不可用的场景

RAD Studio 覆盖范围

该 package 面向从 XE5 到 RAD Studio 13.1 Florence 的 Delphi 和 C++Builder,提供按版本划分的 package project 与每版本输出文件夹

Windows Win32 和 Win64 上也支持 Free Pascal 3.2.2 与 Lazarus/LCL,可通过运行时包 Lib/FPC/HotXLSLaz.lpk 使用,包括 XLS/XLSX 工作簿 API、直接流式处理、公式,以及面向 LCL 数据集和 TDBGrid 的 TDataToXLS 与 TGridToXLS 导出组件

运行 build-FPC-Lib.cmd Win64 或 build-FPC-Lib.cmd Win32 编译包,然后运行 Tests/Lazarus/Run-HotXLSLazarusSmoke.cmd Win64 或对应的 Win32 命令验证工作簿和压缩往返;自定义安装请设置 LAZARUS_DIR

Windows LCL 应用程序必须在 HotXLS unit 之前引入 LCL Interfaces unit,并将 Lib 和 Lib/FPC 加入其 unit 搜索路径、将 Lib 加入 include 搜索路径;VCL 演示窗体、VCL 工作簿查看器和 DevExpress 网格适配器仍是 Delphi/C++Builder 组件

原生 Linux x64 和 macOS ARM64 应用程序加载、编辑、计算并保存受支持的经典 XLS、XLSX、XLSB 和 ODS 模型;经典 BIFF5 文本使用显式声明的代码页,BIFF8 压缩 Unicode 保留精确的 UTF-16 code unit,原生计算和搜索保留 Unicode 大小写匹配

受支持的旧版图表文本在代码页变化时被转码,不可表示或不受支持的字节文本迁移在更改调用方输出前被拒绝;重复 ZIP 读取会释放先前的头部元数据,命名样式查找包含第一个存储条目

有关应用程序设置、旧版编码约定和 regex 兼容性详情,请参阅Free Pascal 和 Lazarus 支持

可移植输出子系统在 Linux 和 macOS 上借助 FPC、Cairo、FreeType、HarfBuzz 和 FriBidi 渲染原生 PDF、SVG 和 PNG;它消费来自受支持原生工作簿核心的不可变快照,具有显式字体几何和资源预算

便于分发

随附 source、package、构建脚本、demo、本地 HTML 文档和 installer 集成,团队无需依赖 Web service 即可构建、测试和发布

起始入口

评估 library 或将其接入项目时,请先使用这些本地文件