losLab 软件开发博客

HotXLS Delphi Component

Software Development Blog

HotXLS Delphi Component

HotXLS 中锚定条件格式的分区处理

了解 HotXLS 如何在 Delphi 中应对行或列编辑:当操作把条件格式或数据验证规则的应用范围切分开时,自动拆分为带优先级的多个独立规则对象,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

Delphi 中 BIFF SupBook 与 XTI 外部链接分类

HotXLS 如何在 Delphi 中分类 BIFF SupBook 与 XTI 记录:同表、加载项、DDE 与 OLE 链接为何无法从 self 标志或空 URL 猜出,以及七类记录的哨兵分发

HotXLS Delphi Component

Delphi HotXLS BIFF8 图表次坐标轴组

HotXLS 如何在 Delphi 中写入 BIFF8 次坐标轴组:AXESUSED、两个 AxisParent 块,以及为什么图表组位于每个轴组内部

HotXLS Delphi Component

用 HotXLS 把图表对象嵌入工作表

HotXLS 把 BIFF8 图表子流作为 OBJ 类型 5 的宿主控件锚定到工作表,写出与 Excel 一致的记录布局,图表因此落在数据旁边而不是独占一张图表工作表,读取侧早已就位

HotXLS Delphi Component

在 Delphi 中写入 BIFF8 数据透视表:SXDB 与 SXLI

数据透视表是 .xls 二进制格式中最复杂的结构。本文介绍 HotXLS 如何在 Delphi 中构建自包含的数据透视缓存、打包 SXDBB 记录,并处理 SXLI、SXPI、原始 blob 与类型化模型,确保读写往返保持可靠,帮助需要兼容旧版 Excel 文件的开发者定位底层记录关系

HotXLS Delphi Component

在 HotXLS 中安全重放不可信的 EMF 与 WMF

HotXLS 把工作表里的 EMF 与 WMF 图片解码成带预算上限的有界命令场景,而不是把字节流交给 GDI 回放;头部、记录大小与 EOF 位置校验失败即拒绝,转义记录一律不予执行

HotXLS Delphi Component

Delphi 中读取 Excel 公式缓存值而不重算

HotXLS 在 Delphi 中直接读取 Excel 已存好的公式缓存值而不触发重算,ETL 作业保持快速,源工作簿逐字节不变;统一覆盖 BIFF、OOXML 与 ODF 三种引擎

HotXLS Delphi Component

用 HotXLS 把 Excel 单元格区域导出为一张图片

TXLSCellImageExporter 把任意 XLS 或 XLSX 单元格矩形渲染成一张 PNG 或 JPEG:没有分页与页边距,带显式像素与字节预算,写盘走同文件夹原子替换,失败时保留旧文件

HotXLS Delphi Component

在 Delphi 中实现 CF_HTML 剪贴板格式

使用 HotXLS 在 Delphi 中构建 CF_HTML 剪贴板负载,让 Excel 区域粘贴到 Word 或浏览器中时仍保留原有样式,并准确处理字节偏移,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

用 HotXLS 在 Delphi 中写 Excel 瀑布图与树状图

用 HotXLS 从 Delphi 写 Excel 瀑布图和树状图:cx chartSpace 部件、layoutId 系列类型、cx pt 缓存与 AlternateContent 锚点,以及决定 Excel 能否打开文件的四条 schema 规则

HotXLS Delphi Component

Delphi 中的 HotXLS 图表、图像与绘图对象

了解如何在 Delphi 中使用 HotXLS 添加 Excel 图表、图像和形状:XLS 中的图表工作表、XLSX 中的嵌入图表和图片、EMU 尺寸调整以及锚点陷阱,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

HotXLS:在 Delphi 中处理 Excel 批注与超链接

在 Delphi 中用 HotXLS 写入带作者的单元格批注、外部 URL 与工作簿内跳转链接,涵盖 XLSX 内部与外部链接两套 API 及 XLS 批注差异,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

HotXLS 在 Delphi 中求值 Excel 条件格式

了解 HotXLS 如何在 Delphi 中脱离 Excel 求值条件格式规则,以及 Excel 16 测试锁定的前 10%、高于平均值和重复值等具体情形,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

HotXLS:在 Delphi 中实现条件格式与富文本

在 Delphi 中用 HotXLS 应用 cellIs 规则、数据条、图标集与多格式富文本,并避开 dxf 样式与字体池索引在 XLSX 文件中的常见陷阱,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

用 HotXLS 在 Delphi 中实现跨工作簿实时求值

用 RegisterExternalWorkbook 注册第二个工作簿后,HotXLS 会让 =[Rates.xlsx]FX!B4 这类公式直接读内存里的实时对象,而不是过期缓存;取消注册就退回文件自带的外部链接缓存

HotXLS Delphi Component

HotXLS:在 Delphi 中导出 CSV、TSV 与 HTML

在 Delphi 中用 HotXLS 把 Excel 工作表导出为 CSV、TSV 与 HTML,涵盖 RFC 4180 引号规则、UTF-8 BOM,以及公式导出前为何必须先执行 Calculate

HotXLS Delphi Component

Delphi 中使用 HotXLS 构建自定义电子表格网格

HotXLS 的 TXLSWorkbookViewer 可将 Excel 工作簿渲染为 Delphi 网格,支持合并单元格命中测试、滚动同步、单元格选择以及超链接和批注事件 HotXLS 提供 原生 VCL 控件,可在 Delphi 或 C++Builder 窗体内将 XLS、XLSX、XLSM 和 ODS

HotXLS Delphi Component

HotXLS:在 Delphi 中处理数据验证、筛选与表格

在 Delphi 中用 HotXLS 添加下拉验证、AutoFilter 条件与 Excel 表格,涵盖服务器端筛选预览,以及 AutoFilter 列号是 0 基偏移的常见陷阱,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

Delphi 中的 Excel 日期序列:1900 与 1904 以及 numFmt

Excel 日期序列只有结合纪元和 numFmt 才有意义。本文说明 1900 与 1904 日期系统为何相差 1462 天、HotXLS 如何映射 TDateTime,以及如何在 OOXML 和 BIFF 文件中正确识别格式、处理 MULRK 与日期读写,避免跨平台工作簿出现日期偏移和类型误判

HotXLS Delphi Component

用 HotXLS 深度重算审计 Excel 公式缓存

HotXLS 在隔离的覆盖层里重算每一条公式,把每个结果与单元格缓存值逐一对比并报告不一致、分类失败原因;全程只读,只有整趟审计完全干净且未取消时,才会按你的要求把修复提交回工作簿

HotXLS Delphi Component

Delphi 中的已定义名称和跨工作表公式(HotXLS)

在 Delphi 中使用 HotXLS 创建工作簿作用域和工作表作用域的已定义名称,编写在编辑后仍能保持有效的跨工作表公式,并避免 _xlnm 名称冲突,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

Delphi 中的工程函数:进制转换与复数运算

Excel 的 DEC2BIN、HEX2DEC 和 IMSUM 函数隐藏了十位补码和字符串编码的复数数学。了解 HotXLS 如何在 Delphi 中实现它们 Excel 中的工程函数系列读起来像是函数参考中最简单的部分。 将数字转换为二进制字符串。 将其转换回。 将两个复数相加。每一个看起来都像是格式化练习

HotXLS Delphi Component

Delphi 中 HotXLS 文件监视器回调死锁

HotXLS 在主线程上触发 TXLSFileMonitor 事件而工作线程在等待,所以在 OnFileChanged 里直接停掉监视器必然死锁,修复是让线程对象携带当前正在运行的回调身份,据此选择 FreeOnTerminate 自释放还是 WaitFor

HotXLS Delphi Component

在 Delphi 中逐步追踪 Excel 公式求值过程

Excel 内置了逐步求值公式的调试方式,了解 HotXLS 如何在 Delphi 中完整重现这一步步化简的过程,方便对电子表格公式进行审计和调试,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

在 HotXLS 中插入行时的公式引用自动调整

了解在 Delphi 中插入或删除行列时,HotXLS 如何平移 A1 公式引用:相对与绝对引用、范围端点,以及 #REF! 出现的具体规则,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

HotXLS 在 Free Pascal 下:Unicode、COM 槽位与 zlib

在 Free Pascal 下构建 HotXLS 需要四项决定:DELPHIUNICODE 模式、带显式 COM 槽位与手工引用计数的 CORBA 接口、以 Pascal 实现的 AES 替代 Delphi 的 OMF 对象,以及修复一个可能把截断 ZIP 当完整的 inflate 循环

HotXLS Delphi Component

在 HotXLS 里读 GIF、BMP 和 JPEG 头部几何信息

HotXLS 从 GIF、BMP 和 JPEG 头部读出真实像素尺寸,让 AddPicture 写入真实几何而不是会拉伸图片的 100x100 兜底值;GetGifSize、GetBmpSize、GetJpegSize 各自处理逻辑屏幕描述符、DIB 头部大小和 SOFn 标记区间

HotXLS Delphi Component

Delphi 下 HotXLS 中的增量公式重新计算

HotXLS 的 Workbook.Recalculate 在 Delphi 中构建公式依赖图,只重新评估脏单元格,涵盖易失函数、拓扑顺序与循环引用处理,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

从 Delphi 在大型 XLSX 中原地修补单个工作表

TXLSDirectWriter.BeginPatch 打开现有 XLSX 包,把目标工作表以外的条目按压缩字节原样搬过去,只重写那一张表,图表、数据透视缓存、主题和共享字符串全程不解压

HotXLS Delphi Component

Delphi 中循环引用的迭代计算

为了在 Delphi 中解决有意的循环引用,了解 HotXLS 如何通过 Iterate、IterateCount 和 IterateDelta 实现迭代计算并让公式循环收敛,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

HotXLS 查找扫描与虚假循环引用

为什么在 Excel 里对包含公式自身的整列使用 VLOOKUP 属于合法计算,HotXLS 又如何把查找扫描边与求值排序边分成两类依赖,把全列引用所造成的虚假循环引用从重算引擎之中彻底清除干净

HotXLS Delphi Component

用 HotXLS 进行仅元数据与选择性的 XLSX 加载

HotXLS 的 MetadataOnly 在 Delphi 中打开大型 XLSX 却不解析任何工作表单元格,配合 SelectedSheets 选择性加载、按需 LoadSheet 实体化被跳过工作表与 PreserveRawParts 原始分部原样保存,让目录扫描与定向编辑只付出所需解析成本

HotXLS Delphi Component

为什么 Excel 拒绝你加密的工作簿:ECB 与 RC4

密码正确但 Excel 报告工作簿损坏,通常是包转换而不是密钥派生出了问题。本文分析 Delphi 中 AES ECB 与 CBC 的差异、RC4 每 1024 字节重新密钥的同步规则,以及如何按 [MS-OFFCRYPTO] 精确生成兼容文件,帮助排查验证器通过但工作表内容损坏的互操作性问题

HotXLS Delphi Component

Delphi 中的并行 XLSX 解析:内存管理器瓶颈

为什么增加线程反而让 Delphi 中的 XLSX 解析变慢?了解 HotXLS 如何把每个单元格的堆分配从约 20 次削减到 9.1 次,实现 1.90 倍并行加速,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

从 Delphi 把 Excel 工作簿导出为 PDF/A

HotXLS 在 Delphi 中把电子表格导出为归档级 PDF/A,内嵌 sRGB 输出意图、pdfaid 元数据,以及归档校验器会检查的字体规则

HotXLS Delphi Component

用 HotXLS 在 Delphi 中框定 BIFF PivotCache 记录

BIFF 的 PivotCache 子流按记录体布局而不是记录号框定 SXDB、SXDBB 与 SXFDB,HotXLS 从每个子流的第一条记录锁定方言,避免把旧式紧凑布局误读成规格布局

HotXLS Delphi Component

在 HotXLS 中编辑 Excel 图表而不丢失 ChartML

HotXLS 在导入时保留 Excel 图表的原始 ChartML 字节,未触碰的图表在保存时逐字节重放、被编辑的图表结构性合并进原始树而非从头重新生成而丢失自定义样式与扩展,AddPlotGroup 还能构建带主副坐标轴的组合图表,全程在 Delphi 进程内完成无需安装 Excel

HotXLS Delphi Component

Delphi 中 XLS、XLSX、ODS 与 CSV 的拉取式行游标

HotXLS 用一个拉取式行游标 TXLSRowCursor 统一 XLS、XLSX、ODS 与 CSV 的流式读取:显式六值状态机区分首行之前、EOF 与已取消和故障,Cancel 幂等,行视图零拷贝借用

HotXLS Delphi Component

HotXLS 的行块单元格存储与流式 XLSX 保存

HotXLS 把工作表单元格存入紧凑的 256 行块、用惰性区间叠加解析行、列与矩形格式而不为只带样式的空单元格创建对象,并在保存时把每一行直接送进压缩包 deflate 流一次一行地压缩,样式池在保存前自动压缩,让大型工作簿的峰值内存随最大单行而非整张工作表 XML 的大小伸缩

HotXLS Delphi Component

Delphi 中的 Excel 统计函数:NORM、CHISQ、BETA

Excel 的 NORM、CHISQ 和 BETA 函数背后是完整的数值分析。本文介绍 HotXLS 如何在 Delphi 中计算正则化伽马、贝塔、尾部概率和逆分布,保持与 Excel 的数值一致性,并修复只在尾部出现的对数分支误差,适合验证电子表格兼容性和统计结果的开发者使用 在单元格中输入 ,Excel

HotXLS Delphi Component

在 Delphi 中以恒定内存写入百万行 XLSX

生成超大 XLSX 文件时内存占用不应随行数增长,了解 HotXLS 如何在 Delphi 中以内联字符串且无共享字符串表的方式流式生成 OOXML,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

HotXLS 中用结构化诊断替代布尔结果

HotXLS 用结构化诊断替代 Save 和 Open 返回的布尔结果,为 Delphi 应用提供稳定错误码、严重级别以及具体的工作表上下文信息,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

在Delphi中用HotXLS处理SUBTOTAL与AGGREGATE的隐藏行

为什么v2.197.0之前的HotXLS中SUBTOTAL 109和SUBTOTAL 9会返回同一个总和,以及一个行隐藏回调如何修复Delphi中AGGREGATE的隐藏行处理 如果一份包含隐藏行的工作簿中, 和 返回的是同一个数字,那么这两者中必定有一个是错的。HotXLS是面向Delphi和C++Builder的原

HotXLS Delphi Component

Delphi 中的 Excel 表格 Slicer:HotXLS 往返

用 HotXLS 在 Delphi 中创建 Excel 表格 Slicer:必须对齐的八个包位置、为什么 slicer 缓存总是从模型重建、表与透视缓存按不同策略往返,以及 rid 链如何保持稳定

HotXLS Delphi Component

用 HotXLS 从 Excel 图片生成标记 PDF 图形元素

HotXLS 如何把携带替代文本的工作表图片导出为独立的 PDF Figure 结构元素并挂接正确的父树条目,以及为什么每页只能有一个 MCID 分配器、父树槽位冲突时究竟会发生什么

HotXLS Delphi Component

HotXLS:在 Delphi 中保留 VBA 宏与外部链接

了解在 Delphi 代码改写工作簿时,HotXLS 如何原样保留 VBA 工程与外部链接:启用宏的保存方式、链接目标处理以及往返保真度的限制,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

Delphi 中重写 VBA 源码并重新压缩 MS-OVBA

HotXLS 让 Delphi 开发者可以重写 VBA 模块源码,用 MS-OVBA 算法重新压缩,再把宏写回 XLS 或 XLSM 文件,无需逐个打开编辑器,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

HotXLS:Delphi 中的工作簿审计与格式转换

借助 HotXLS 在 Delphi 中审计未知的 Excel 文件:统计图表、公式、宏和保护设置,再按已知保真度限制把 XLS、XLSX 和 ODS 转换为目标格式,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

用 HotXLS 在 Delphi 中比较两份 Excel 工作簿

TXLSXWorkbookCompare 按名称配对工作表,遍历已填充的单元格,把值、公式和合并区域的差异同时给成结构化列表和每行一条的可读报告,机器上不用装 Excel

HotXLS Delphi Component

HotXLS:在 Delphi 中设置 Excel 文档属性

在 Delphi 中用 HotXLS 设置与读取 Excel 文档属性:标题、作者、公司和关键字,覆盖 BIFF 的 SummaryInformation 流与 OOXML 的 docProps 部分

HotXLS Delphi Component

HotXLS 的 Delphi 工作簿读租约与写守卫

HotXLS 如何在 Delphi 中协调工作簿的并发读写:用 O(1) 读租约、失败即抛的写守卫、可重入事务和世代计数器,让后台报表导出与主线程界面编辑互不破坏,冲突在落笔前就被拦下

HotXLS Delphi Component

Delphi 中 XLOOKUP 与 XMATCH 的二分查找模式

了解 HotXLS 如何在 Delphi 中求值 XLOOKUP 和 XMATCH:合法的匹配与查找模式、O(log n) 二分下降、重复键边界情形,以及通配符被拒绝的原因,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

Delphi解析器中的XLSX OPC关系解析

为什么硬编码xl/worksheets/sheet1.xml会破坏合法的XLSX文件,以及HotXLS如何在Delphi中根据源部件解析OPC关系目标 一个合法的xlsx文件完全可以不包含 。HotXLS是面向Delphi和C++Builder的原生Excel电子表格组件,它通过OPC关系图来定位每一个部件,而不是靠猜

HotXLS Delphi Component

Delphi中XLSX共享公式si展开:常见陷阱

HotXLS如何在Delphi中展开XLSX共享公式的从属单元格:找到si主单元格、平移相对引用,并正确处理自闭合的f元素 XLSX中一个共享公式的从属单元格本身不携带任何公式文本。它的 元素指向工作表中别处的一个主单元格,读取器必须按行列差值平移主公式,重新构建出文本。面向Delphi和C++Builder的HotX

HotXLS Delphi Component

使用 HotXLS 在 Delphi 中复制 XLSX 工作表

使用 HotXLS 的 Duplicate 和 CopyFrom 在 Delphi 中复制带样式的 XLSX 工作表:哪些内容深拷贝、哪些保持浅拷贝,以及如何在副本上重建图表,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

Delphi 中不可信 XLSX 文件的 ZIP EOCD 校验

了解 HotXLS 如何用四项交叉检查校验 ZIP 目录结束记录,让藏在 ZIP 注释里的伪造 EOCD 骗不过你在 Delphi 中的解析器,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

Delphi 中的并发 ZIP 解压:HotXLS 读取闸门

了解 HotXLS 如何在 Delphi 中用一道只锁定“定位加读取”这对操作的读取闸门,从同一个共享 ZIP 包流中并发解压多个 XLSX 工作表,适用于 Delphi 和 C++Builder 项目

HotXLS Delphi Component

HotXLS、zlib-ng CRC32 与 Delphi 线程栈溢出

当 zlib-ng 选择 Chorba 路径时,HotXLS 工作表的 CRC32 校验可能耗尽 1 MB 工作线程栈,改用 64 KB 分块处理数据即可避免崩溃,适用于 Delphi 和 C++Builder 项目