核心内容:
- 纯 Go 实现的 Word 文档操作库 WordZero,无外部依赖。
- 支持复杂的表格操作、样式和格式处理,性能优秀。
- 提供基础功能、表格功能、模板功能和高级功能,API 设计直观。
最近在做一个项目需要生成 Word 报告,试了几个库都不太满意,要么功能太简单,要么需要付费不完全开源。索性自己撸了一个,现在分享给大家。
为什么又造轮子?
市面上的 Go Word 库要么只能做简单的文本插入,要么需要安装 Office 或者 LibreOffice 。我需要的是:
- 纯 Go 实现,无外部依赖
- 支持复杂的表格操作
- 能处理样式和格式
- 性能要好,适合批量生成
主要特性
基础功能
- 创建/读取/修改 .docx 文档
- 文本格式化(字体、颜色、粗体等)
- 18 种预定义样式,支持 Word 导航窗格
- 段落对齐、间距、缩进
表格功能(这个比较实用)
|
|
模板功能
支持模板继承,可以定义基础模板然后扩展:
|
|
高级功能
- 页眉页脚、目录生成
- 脚注尾注、列表编号
- 页面设置( A4 、Letter 等)
- 图片插入
性能表现
做了个简单的基准测试,生成同样的文档:
- Go (WordZero): 2.62ms
- JavaScript: 9.63ms
- Python: 55.98ms
Go 确实快不少。
使用体验
API 设计比较直观,支持链式调用:
|
|
项目地址
GitHub: https://github.com/ZeroHawkeye/wordZero
Gitee: https://gitee.com/Zmata_admin/WordZero
有详细的文档和示例,examples 目录下有各种使用场景的 demo 。
适用场景
- 报表生成系统
- 合同文档批量生成
- 数据导出为 Word 格式
- 文档模板填充
- 自动化办公
目前还在持续更新中,如果有需求或者 bug 欢迎提 issue 。
纯 Go 实现,零依赖,开箱即用。如果对你有帮助记得给个 star ⭐
参考
评论
17 条回复 **•**2025-06-03 11:38:32 +08:00
1
**wangritian**2 小时 23 分钟前
go 确实没有好用的开源 word 操作库,之前是 kotlin 接 apache 那套然后用 cgo 调用 jar 曲线救国的,star 支持一下
2
**jazzychai**2 小时 9 分钟前
star 了,刚好要做一个 word 相关的功能,本来想用 Python 曲线救国,试一下能不能满足业务需求
3
**sholmesian**2 小时 7 分钟前 via iPhone
这个正需要,已 start.
4
**icinessz**1 小时 56 分钟前
太感谢了,一直在找类似的库
5
**tuimaochang**1 小时 35 分钟前
大佬牛逼!
6
**body007**1 小时 28 分钟前
为大佬点赞。
7
**bronyakaka**1 小时 25 分钟前
很不错,很实用
8
**moell**1 小时 24 分钟前
已 star
9
**676529483**1 小时 18 分钟前 1
支持下,以前有个项目要用 xls ,go 只支持 xlsx ,最后只能 Python 曲线救国了
10
**caotian**1 小时 17 分钟前
已 start, 有没有图表支持? 如果有的话, 就可以换掉 poi-tl 那套了, 那个库报了 Vulnerability 一直不更新修复, 快不敢用了.
11
**dbskcnc**1 小时 10 分钟前
虽然基本不用 word,不过还是支持
12
**shengxiadiaoling**52 分钟前
牛
13
**vfs**34 分钟前
目前还没有需求,但是很赞
14
**Reficul**12 分钟前
你这个转接的有点 6 啊。 kotlin -> jvm -> cgo -> go
15
@caotian 多谢支持,图表还没实现,加到 todo 里了
16
@dbskcnc 多谢支持~
17
**lexno
支不支持已有的 word 模板,然后使用这个模板来生成数据,我看现有的示例好像都是用库本身产生一个 document ,然后再进行模板填充?