###程序功能说明:该功能是将excel里的数据向一个word模板里填充数据,并保存为一个word文档。 from docxtpl import DocxTemplate import openpyxl def main1(): ###特别说明在填写路径时,要用到双\\,不能用文件属性里粘贴的单斜杠\路径,否则会报错 sSourceFile = "C:\\Users\\16606\\Desktop\\cq\\21.xlsx" ##打开文件模板 doc = DocxTemplate("C:\\Users\\16606\\Desktop\\cq\\mb.docx") #加载一个工作簿 wb = openpyxl.load_workbook(sSourceFile) cun2='' cun2_num='' #打开指定表名称的工作表 sh = wb['陈老七小学'] #获得表单元里面的内容,row为行,column为列 # name= sh.cell(row=1, column=1) ##获得单元内的值为name.value # print("name", name.value) for i in range(4,50): ###每循环一次,就要重新加载一次模板,否则生成doc的内容是一样的 doc = DocxTemplate("C:\\Users\\16606\\Desktop\\cq\\mb.docx") name= sh.cell(row=i, column=2) sex= sh.cell(row=i, column=9) idcard= sh.cell(row=i, column=3) phone= sh.cell(row=i, column=4) cun1= sh.cell(row=i, column=10) print(cun1.value) for m in cun1.value: if m=="村": cun2=cun1.value[:cun1.value.index(m)] cun2_num=cun1.value[cun1.value.index(m)+1:] break ###创建字典形式 context = {'name': name.value, 'sex': sex.value, 'Idcard2': idcard.value, 'phone': phone.value, 'cun': cun2, 'cun_num': cun2_num } ###doc渲染 doc.render(context) ###doc保存 doc.save("C:\\Users\\16606\\Desktop\\cq\\21\\"+name.value+".docx") if __name__ == "__main__": main1()
感谢众网友的分享: