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.0 | — | open() 根据文件头判断类型,取消内存调用防闪退 |
| 2.4 | — | getTable() 支持全文本表 |
| 2.7 | — | 优化 richstr 富文本操作 |
| 2.9 | — | book/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.9 | — | getCellValueWithNumFormat, 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.8 | 2026-07-17 | 修复 打开文件时当前激活表不正确的问题 |
🌟 亮点与设计优势
- 高性能与低内存 —— libxl C 核心,支持 openSheetPart 仅加载指定行范围,适合超大文件。
- 完整的格式体系 —— 字体、边框、填充、对齐、数字格式、条件格式 (2色/3色标尺、规则) 一应俱全。
- 智能单元格操作 —— setCellValue 自动识别类型,getTable 支持字段映射、空值替代、数字格式化。
- 公式计算引擎 —— 可计算公式文本,支持 calcMode 控制自动/人工计算。
- 筛选与排序 —— 完整的筛选器对象 (filter),支持自定义条件、前N项、多级排序。
- 数据验证 —— 支持 7 种验证类型 + 多种运算符,可设置提示/错误信息。
- 多线程友好 —— book() / sheet() 可重建对象传递句柄,适合并发场景。
- 文档属性与清理 —— 支持读写 标题/作者/标签/类别/备注,并清除 VBA/宏/打印设置。
📘 典型调用示例
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);
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();
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 自动化开发的可靠选择。
👍 高性能
👍 功能全面
👍 持续迭代
👍 企业级