godking.word 是一个面向 Aardio 环境的 DOCX 操作库,
在 NPOI 基础上封装了 文档、段落、运行块、表格、单元格 等层级,提供直观的链式 API。
✨ 设计哲学: 将复杂的 OOXML 操作转化为易用的对象模型,兼顾 性能、完整性与开发效率。
支持 创建/编辑/保存,并内置 查找替换、图片插入、页眉页脚、表格操作 等高频场景。
🧩 架构 · 类层次
class godking.word {
document, filename
— setPaperSize, setPageMargin
— setHeader, setFooter
— addParagraph, getParagraph, deleteParagraph, eachParagraph
— addTable, getTable, deleteTable, eachTable
— replace(文本替换)
}
class ClassParagraph { runs, alignment, spacing, indent, font ... }
class ClassRun { text, font, color, bold, italic, underline, picture ... }
class ClassTable { rows, cells, merge, insert, setCellText ... }
class ClassRow { height, cells, merge ... }
class ClassCell { paragraphs, text, addParagraph, clear ... }
⚡ 核心功能与特性
📝 文档 & 页面
创建/打开 DOCX,设置 纸张大小、页边距,支持 页眉/页脚 定制(对齐、字体、颜色、下划线)。
A4 默认自定义宽高页眉页脚
✍️ 段落 & Run
精细控制 段落对齐、行距、缩进、段前段后;Run 级别设置 字体、字号、颜色、粗体/斜体/下划线,并可插入 图片 与 换行/分页。
链式 addTextaddRun图片嵌入
📊 表格引擎
完整表格操作:添加行/列、合并单元格、设置行高、单元格内容独立设置,支持 按数组/字典填充 数据,并可批量替换文本。
动态行列单元格合并数据填充
🔍 查找与替换
文档级、段落级、表格单元格级 的 文本查找替换,支持正则风格(基于 string.replace)。v1.4 新增,覆盖全文(含表格)。
replace()全文档精准定位
🖼️ 多媒体支持
在 Run 中插入 JPEG 图片,自动缩放(按厘米),支持 文件路径 或 内存数据流,适合动态生成报告。
addPicture自适应宽高内存流
🧹 资源管理
close() 显式释放文档资源,避免内存泄漏;支持 保存 到指定路径,可重复写入。
IDisposable 风格FileStream
📌 版本迭代 · 演进脉络
| 版本 | 日期 | 核心更新 |
| 1.0 | — | 初步封装,基础段落与 Run 操作 |
| 1.1 | — | 功能扩展:页眉页脚、图片、分页 |
| 1.2 | — | 集成 NPOI 依赖,脱离外部 NPOI 库(内置 .res) |
| 1.3 | — | 增加 表格操作 全套支持(行、列、单元格、合并) |
| 1.4 | 2026-06-03 | 增加 replace() 函数,支持文档/段落/表格全文替换 |
🌟 亮点与优势
- 链式调用风格 —— 如
doc.addParagraph().addText("内容").addPicture("logo.jpg"),代码流畅自然。
- 细粒度 Run 控制 —— 每个文本片段(Run)可独立设置字体、颜色、下划线,满足复杂排版需求。
- 表格数据填充 —— 支持
setTable(tb) 传入数组或字典,快速生成结构化内容。
- 智能单位转换 —— 内部将 厘米 → Twip / EMUs,开发者无需关心底层度量。
- 完整的迭代器支持 ——
eachParagraph、eachRun、eachTable 方便批量处理。
- 低依赖封装 —— 所有 NPOI 依赖内置在
.res 中,即开即用。
- 错误容忍 —— 多数方法在参数无效时安全返回,不中断流程。
📘 API 典型示例
var doc = godking.word("report.docx");
doc.setPaperSize(21, 29.7);
doc.setPageMargin(2.54, 2.54, 3.17, 3.17);
doc.setHeader(2, "年度报告", "微软雅黑", 14, 0x1A3A5A, true);
var p = doc.addParagraph(2, 1.5, 1, 0, 0, 0.5, "引言", "宋体", 12);
p.addText("这是正文内容,", null, null, 0xCC0000, false, false, 1);
p.addPicture("logo.png", 4, 3);
var tbl = doc.addTable(3, 3);
tbl.setCellText(1, 1, "姓名");
tbl.setCellText(1, 2, "部门");
tbl.mergeCell(1, 1, 1, 2);
doc.replace("2025", "2026");
doc.save("output.docx");
doc.close();
⚙️ 设计考量 & 性能
✅ 内存管理
使用 FileStream 及 MemoryStream,配合 close() 显式释放,避免大文档内存峰值。
✅ 异常安全
大部分函数对 null / 越界 有防御性检查,返回安全对象或直接返回,减少崩溃风险。
✅ 扩展性
基于 NPOI 原始对象,可随时向下转型获取底层 API,满足高级定制需求。
🎯 典型应用场景
📊 报表自动生成
📋 合同/标书制作
📈 数据导出(表格+图表)
🖨️ 批量文档处理
📝 富文本编辑器后端
🧾 证书/奖状打印
📌
综合评价
godking.word 是一个 成熟、功能完备 的 DOCX 操作封装库。它在 NPOI 的庞杂接口上构建了
人性化的 API 层,兼顾 效率与灵活性。v1.4 加入的 replace() 使其更适用于
模板替换场景。无论是快速生成报告,还是构建复杂的文档流水线,它都能提供清晰、可靠的解决方案。
代码风格统一,链式调用让脚本简洁易读,是 Aardio 生态中处理 Word 文档的优秀选择。
👍 易于上手
👍 功能覆盖全面
👍 持续迭代