通过python是可以控制word文档内容的,本篇文章简要介绍其原理,具体实现与实际案例可看我的开源项目。详细文档可查看我的飞书文档>麒麟实训>大作业-文档生成工具

简介

文档生成工具主要通过对自动化适配工具生成的csv报告、html报告进行读取、解析、整理,进而生成指定的word总报告。

项目地址:https://gitee.com/uuanqin/report_generator.git

基本原理

每一个word文档都可以通过xml表示,这个xml中包含文字信息和格式信息。通过给定的doc报告模板,我们可以以xml的方式进行操作,在实现增删改查xml元素的同时保持原有给定的格式基本不变。

业务流程

伪代码:

  • 获取所有生成最终报告需要的源报告路径
  • 根据路径对文件及文件夹进行读取
  • 对每个文件中的数据提取、解析、整理
  • 读取报告模板,填写每个部分的word表格
  • “FAIL","PASS"字体染色
  • 保存为中间文件_temp.xml_
  • 读取_temp.xml_,替换其中的变量,保存为中间文件 麒麟操作系统适配认证自动化测试报告.xml
  • 移动 麒麟操作系统适配认证自动化测试报告.xml 到目标文件夹中,修改后缀为.doc

效果示例

image-20220701160509387

文档对象插入

关于python控制word中的文档对象可查看以下方法:

python在word文档里插入文件对象_奶爸大山的博客-CSDN博客_python word附件

经我与导师们实际调研与操作得到以下结论:

  • 需要事先在word插入好文档对象,我们才可能通过代码改变这个文档对象。
  • python代码中只能改变文档对象指向的内容,新增加文档对象。
  • 支持改变的文档对象只能是xlsx格式或docx格式,其他格式的文档对象插入时,生成的ole.bin文件暂时没找到办法进行生成。