前言
众所周知,安服工程师又叫做Word工程师,在打工或者批量SRC的时候,如果产出很多,又需要一个一个的写报告的情况下会非常的折磨人,因此查了一些相关的资料,发现使用python的库批量写报告效果很不错,记录一下。
介绍
是一个用于生成 Microsoft Word 文档的模板引擎库,它结合了 docx 模块和 Jinja2 模板引擎,使用户能够使用 Microsoft Word 模板文件并在其中填充动态数据。它提供了一种方便的方式来生成个性化的 Word 文档,并支持条件语句、循环语句和变量等控制结构,以满足不同的文档生成需求。
官方GitHub地址:https://github.com/elapouya/python-docx-template
官方文档地址:https://docxtpl.readthedocs.io/en/latest/
简单来说:就是创建一个类似Jinja2语法的模板文档,然后往里面动态填充内容就可以了
安装:
基础使用
其中,test.docx内容如下:
test.docx
生成后的结果如下:
gen 案例介绍 需求假设
写一份不考虑美观的漏扫报告,需要有统计结果图和漏洞详情,每个漏洞包括漏洞名、漏洞地址、漏洞等级、漏洞危害、复现过程、修复建议六个部分。
模板文档准备
编写的模板文档如下,使用到了常见的、、等,保存为(点击可下载),后续只需要向里面填充数据即可。
template数据结构分析
传入数据需要一串json字符串,因此我们根据模板文档梳理好json结构,然后传入即可。
梳理好的数据结构如下:
编写代码测试一下可行性:
很好,达到了预期的效果。
res
在上面的过程中,内容几乎是没问题了,但是图表还是没有展示出来。生成图表我们使用这个库,并将生成内容写入。
相关代码如下:
最终结果
要插入图片内容,代码语法如下:
完整代码如下:
结果如下:
result
领取专属 10元无门槛券
私享最新 技术干货