需求:利用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秒了。
最大的好处是客户想改报告格式内容啥的都随意。