解决方案的选择
因为项目要求不能使用模板方案,不能依赖Office,网上找了一些解决方案进行调研,以下几个方案:
- OpenOffice: 兼容性差,集成调用难度大
- LibOffice: 太庞大,不容易集成 参考博客
-
DocxFactory:是一个用于生成.DOCX文件的免费项目。不依赖于office,支持在模板里插入文字、报表、图片、条形码等。压缩包内包含各种语言的资源代码及操作手册。(
模板方案推荐方式
) 参考博客 -
DuckX: 太小众,只能简单的使用 (
无法插入图片
)参考博客 -
docx:小众库,与Duckx库类似 (
无法插入图片
)
Python-docx
时间紧任务重,由于上述方案均无法满足项目需求,所以搜索了其它语言读写word的方式。*
- Apache POI:是一个Java库, 提供纯 Java API 来处理 Microsoft Office word。我们可以创建新的word文档,从Java程序中写入和读取数据。
Pizzip:是一个JavaScript库,可以读取和写入Word文档。它支持.doc和.docx格式,并可以在浏览器中使用。 - Open XML SDK:是一个C#库,用于读取和写入Open XML格式的Word文档,不支持跨平台,即只能部署在windows系统。
- python-docx:是一个流行的Python库,用于读取和写入Microsoft Word文档。它支持.docx格式,并提供了许多API来操作文档内容、样式和格式。
由于对个人对python相对熟悉一些,所以最终选择使用Python-docx库,集成到程度中,Python环境与相关库跟随Qt程序一起发布。
安装Python环境
参考:
注意:安装过程中选择添加环境变量选项,不然python指令无法在windows终端中使用
Python调用
- 在qt项目中引入python.lib库,不了解的朋友可以搜索 qt如何引入 第三方库,引入库后会出现问题,查看下一项。我只遇到了slot关键字的问题。
- Qt写C++调用Python遇到的坑
- C++调用Python(混合编程)
- Linux环境配置
- 打包发布
- python-docx 官方文档