📊 libxl · Excel 操作库

🔹 光庆封装 · v4.8 📅 2026-07-17 ⚡ 基于 libxl 5.2.0
xls / xlsx / xlsm 高性能 公式计算 条件格式 数据验证 筛选/排序 多线程安全
版本4.8
libxl 版本5.2.0
格式支持xls / xlsx / xlsm
依赖sevenZip.lzma · fsys
设计模式对象封装 · 链式

godking.libxl 是一个基于 libxl 专业 C 库的高性能 Excel 操作封装,支持 xls / xlsx / xlsm 格式的读写。 提供了从 工作簿、工作表、单元格格式、公式、图表、筛选、条件格式、数据验证 到 富文本、图片、超链接 的全方位能力。

🎯 设计哲学: 在 libxl 原生高效的基础上,构建 符合 Aardio 习惯的面向对象 API,同时保留底层灵活性。 内存占用极低,适合处理 超大文件,并支持 部分加载 (openSheetPart) 与 多线程传递。
🧱 架构 · 类层次
// 核心类结构 class libxl.book { — filename, activeSheetIndex, errorMessage, colorMode, calcMode — load, save, loadRaw, saveRaw, close, release — addSheet, insertSheet, delSheet, getSheet, sheet — addFormat, getFormat, findFormat, addFont, getFont — addRichString, addPicture, addNumFormat, getNumFormat — properties, addConditionalFormat, getConditionalFormat — removeVBA, removePrinterSettings, removePhonetics } class libxl.sheet { — name, firstRow, lastRow, firstCol, lastCol, defaultFormat — convertDate, convertFormula, convertRichstr — getCellStr, getCellNum, getCellDate, getCellFormula, getCellBool — setCellStr, setCellNum, setCellDate, setCellFormula, setCellBool — setCellRichStr, setCellPicture, setCellHyperlink — getTable, setTable, getValues, setValues — merge, unMerge, insertRow, delRow, insertCol, delCol — setRow, setCol, setRowPx, setColPx — filter, applyFilter, delFilter — addConditionalFormatting, getConditionalFormatting — addDataValidation, delDataValidations — sort, setProtect, freeze, groupRows, groupCols — setHeader, setFooter, setPrintArea, setPrintFit — addSubTable, getSubTable, getSubTableProperties — addr, addrToRowCol, rowColToAddr — getRangeByName, setRangeByName, delRangeByName } class libxl.format { font, numFormat, alignH, alignV, wrap, border, fillPattern, locked ... } class libxl.font { name, size, bold, italic, color, underline, script ... } class libxl.filter { setRange, setSort, addSort, filterColumn, apply, delete } class libxl.richString { addText, getText, count, getFont, getTexts } class libxl.properties { title, subject, creator, tags, categories, comments ... } class libxl.subtable { name, ref, style, showRowStripes, getFilter, getColumnName, setColumnName } class libxl.conditionalFormatting { addRange, addRule, addTopRule, addNumRule, addStrRule, addAverageRule, addTimeRule, add2ColorRule, add3ColorRule }
功能全景
📁 工作簿 & 工作表

创建/打开/保存 xls/xlsx/xlsm,支持 密码读取、部分加载 (openSheetPart)、内存数据载入 (loadRaw)。

多格式部分加载内存操作
✏️ 单元格读写

文本、数值、日期、公式、逻辑、空白、富文本、批注、图片、超链接,自动类型识别,支持 合并单元格智能处理。

自动识别合并单元格批量读写
📐 格式 & 样式

字体、数字格式、对齐、边框、填充图案、旋转、缩进、锁定/隐藏,支持 自定义数字格式 与 条件格式 (2色/3色标尺)。

格式对象条件格式数字格式
🧮 公式与计算

支持 公式读写、公式计算 (formulaCalc)、calcMode 控制,可获取公式结果或文本。

公式计算calcMode公式结果
🔍 筛选 & 排序

支持 自动筛选 (文本/数字/自定义/前N项),多级排序,筛选器对象可复用。

自动筛选多级排序自定义条件
📊 高级功能

数据验证、冻结窗格、分组、打印设置 (页眉/页脚/重复行/打印区域)、子表格、条件格式管理器。

数据验证冻结打印设置子表格
🖼️ 富文本 & 图片

单元格内 混合字体/颜色/大小,支持 PNG/JPEG/GIF/WMF/SVG 等图片格式,可 按比例/拉伸/偏移 放置。

富文本多图片格式SVG
⚙️ 扩展与工具

重建XLSX文件 (rebuildXLSXFile)、获取表名、属性操作、清除VBA/宏、多线程对象重建。

重建工具VBA清除多线程
📌 版本迭代 · 关键里程碑
版本日期核心更新
2.0open() 根据文件头判断类型,取消内存调用防闪退
2.4getTable() 支持全文本表
2.7优化 richstr 富文本操作
2.9book/sheet 多线程传递支持,必须手动释放
3.0升级 dll 4.6,修复现有功能
3.1增加 properties 文档属性,addSubTable 子表格
3.2升级 dll 5.0.0,增加对应函数
3.4升级 dll 5.1.0
3.6增加“合并单元格处理方式”参数,优化读写逻辑
3.7增加 getCellNumFormat / setCellNumFormat
3.9getCellValueWithNumFormat, getStrWithNumFormat
4.0增加 公式计算功能 (calcMode, formulaCalc)
4.1公式计算支持 Win7
4.2常规格式数值四舍五入处理
4.3兼容老版本 aardio
4.4优化 richstr 读取,增加 convertRichstr 属性
4.5升级 dll 5.2.0
4.6增加 openSheetPart() 部分加载
4.7增加 loadRaw() 内存数据载入
4.82026-07-17修复 打开文件时当前激活表不正确的问题
🌟 亮点与设计优势
📘 典型调用示例
// 打开工作簿 var book = godking.libxl.open("data.xlsx", "Sheet1"); var sheet = book.sheet(); // 当前激活的表 // 读写单元格 sheet.setCellStr(1, 1, "姓名"); sheet.setCellNum(2, 2, 3.1415); sheet.setCellDate(3, 3, time.now()); sheet.setCellFormula(4, 4, "=SUM(B2:B3)"); // 批量获取表格数据 (自动识别类型) var data = sheet.getTable(1, 1, 0, 0, 1, "", true); // 参数5=1 表示第一行作为字段名,返回字典数组 // 设置格式 var fmt = book.addFormat({ alignH = 2, wrap = true }); sheet.setCellStr(5, 5, "自动换行文本", fmt); // 筛选与排序 var flt = sheet.filter(); flt.setRange(1, 1, 100, 10); flt.filterColumn(1).addFilter({"张三","李四"}); flt.setSort(2, false); flt.apply(); // 条件格式 (2色标尺) var cf = book.addConditionalFormat(); cf.fillPattern = 1; cf.patternForegroundColor = 0xFF0000; var cfm = sheet.addConditionalFormatting(); cfm.addRange(1, 100, 1, 10); cfm.add2ColorRule(0x00FF00, 0xFF0000, 0, 0, 1, 0, false); // 保存并释放 book.save("output.xlsx"); book.close();
⚙️ 核心可配置属性
📖 Book 级别
filename · activeSheetIndex · errorMessage
colorMode (索引/RGB) · calcMode (自动/人工)
isDate1904 · isTemplate
📄 Sheet 级别
convertDate · convertFormula · convertRichstr
defaultFormat · defaultRowHeight · tabColor
firstRow / lastRow / firstCol / lastCol
🎯 典型应用场景
📊 数据导入/导出 📈 报表生成 (带格式/图表) 🧾 批量数据处理 📋 模板填充 (合同/订单) 🔢 复杂公式计算 📂 大文件部分读取 🎨 条件格式报表 📎 Excel 自动化工具 🔄 多线程数据处理
📌

综合评价

godking.libxl 是 Aardio 生态中 功能最全面、性能最卓越 的 Excel 操作库之一。 它基于 libxl 专业引擎,提供了从 基础读写 到 高级格式、公式、筛选、条件格式、数据验证 的全栈能力。 封装设计 贴合 Aardio 习惯,同时保留了底层灵活性,尤其适合 企业级数据处理、自动化报表 和 大文件处理 场景。 持续迭代 4 年,版本稳定,是 Excel 自动化开发的可靠选择。

👍 高性能 👍 功能全面 👍 持续迭代 👍 企业级