解决方案的选择

python docx 读取页眉页脚_Python


因为项目要求不能使用模板方案,不能依赖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 docx 读取页眉页脚_python docx 读取页眉页脚_02

Python调用

  • 在qt项目中引入python.lib库,不了解的朋友可以搜索 qt如何引入 第三方库,引入库后会出现问题,查看下一项。我只遇到了slot关键字的问题。
  • Qt写C++调用Python遇到的坑
  • C++调用Python(混合编程)
  • Linux环境配置
  • 打包发布
  • python-docx 官方文档