需求:利用Python自动生成巡检报告,在客户提交的巡检报告模板里把要填的内容按照{ID1}等标上号。然后利用Python-docx包寻找ID改为需要的值
from docx import Document
import time
if __name__ == '__main__':
st=time.process_time()
document = Document('test.docx')
for x in document.paragraphs:
x.text=x.text.replace('{ID1}','5.5')
for t in document.tables:
rownum=len(t.rows)
colnum=len(t.columns)
for i in range(rownum):
for j in range(colnum):
for x in t.cell(i,j).paragraphs:
for r in x.runs:
r.text = r.text.replace('{ID1}', '5.5')
document.save("test2.docx")
end=time.process_time()
print(end-st)
可以保留原来的格式。但是就是有点慢。一个23页7000多字满是表格的报告,在R1500的CPU上走一遍居然要5秒多。试了改1到5个ID,时间是线性增长,多一个ID多0.14秒的样子,假如这巡检报告有100多条的话,这么搞得20秒了。
最大的好处是客户想改报告格式内容啥的都随意。
Python自动化填充巡检报告
该博客介绍了如何使用Python-docx库高效地自动填充Word巡检报告模板,尽管对于大量ID替换操作,处理速度相对较慢,但能保留原有格式且方便客户修改报告样式。对于一个包含23页和7000多字的报告,每增加一个ID替换大约需0.14秒,这意味着对于100多个ID的报告,总耗时可能达到20秒以上。
1187

被折叠的 条评论
为什么被折叠?



