如何使用Python批量创建Word模板在日常工作中我们经常需要重复性地将同一份内容的Word文档资料发送给多个不同客户,此时Word文档内容可能只有客户署名不同、或者只有部分关键信息不同。此时如果采用传统的工作方法我们可能需要反复地打开不同Word文档,然后修改文档里面的内容,这样的话就需要花大量时间来完成重复性工作。针对此问题,我们如果使用Python进行简单的编程就有可能使重复性工作快速完成。本文就以实例针对如何使用Python批量创建Word模板进行简单介绍。本文需要完成Word模板任务背景如下:小姚在一家超市工作,每天上午都需要将Word版苹果今日价格通知信息发送给100家客户,每份通知文档中只有价格、客户、日期不相同。为了减少重复性工作,本次需要制作的Word模板文档内容如下:**年**月**日苹果价格通知Dear客户1:根据目前市场情况,今日我司苹果售价拟定为5元每斤,特此通知。如有任何疑问可随时与我联系,谢谢!联系人:小姚电话:1234567890在使用Python创建Word模板之前,我们先了解一下Word文档逻辑层次结构图:由以上两个图表可知:文档是由多个段落组成,段落是由多个文字组成。所以在我们采用传统工作方法创建新Word模板时操作流程基本如下表所示:总结了Word模板创建的基本流程,接下来我们就可以参考该流程使用Python代码语句编程实现批量创建Word模板,具体操作步骤如下:第一步.导入Python-docx模块,模块导入基本步骤如下:导入模块操作界面如下图表1~图表4所示:DocumentParagraph1Run1Run2Run...RunnParagraph2Run1Run2Run...RunnParagraph...Run1Run2Run...RunnParagraphnRun1Run2Run...Runn整个文档属性(默认字体、默认格式)段落属性(段落间距、对齐方式等)文字属性(字体、字号、加粗等)Step1.新建Word文档Step2.打开Word文档Step3.设置段落Step4.输入内容Step5.设置字体Step6.保存文档Step1.点击FileStep2.设置SettingsStep3.设置ProjectInterpreterStep4.点击右上角“+”Step5.搜索Python-docxStep6.点击InstallPackageStep7.显示“Package‘Python-docx’installedsuccessfully”即安装完成图表1图表2图表3图表4第二步.新建Pythonfile,进入Python代码编辑界面;第三步.编辑Python代码,由于本次需要生成Word模板只有四个段落,参考前面介绍的Word文档逻辑层次结构,可知本次代码编写流程顺序基本由以下几个部分组成第四步.编写完成的完整代码语句如下:fromdocximportDocumentfromdocx.enum.textimportWD_ALIGN_PARAGRAPHfromdocx.sharedimportPt第一部分:导入所需模块•1.导入文档模块•2.导入段落设置模块•3.导入字体设置模块•4.导入中文格式设置模块•5.导入时间模块第二部分:文档内容变量定义•1.输入今日价格•2.定义客户列表•3.获取今日时间第三部分:文档初始化•1.针对每个客户生成文档•2.文档初始化•3.设置文档默认字体、样式第四部分:正文内容设置•1.分别新建4个段落•2.输入4个段落内容•3.设置每个段落属性•4.设置每个段落字体属性第五部分:保存文档•文件按照要求文件名保存至固定路径fromdocx.oxml.nsimportqnimporttimeprice=input('请输入今日价格:')company_list=['客户1','客户2','客户3','客户4','客户5','客户6','客户7','客户8','客户9','客户10']today=time.strftime(%Y{y}%m{m}%d{d},time.localtime()).format(y='年',m='月',d='日')foriincompany_list:document=Document()document.styles['Normal'].font.name=u'宋体'document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')p1=document.add_paragraph()p1.alignment=WD_ALIGN_PARAGRAPH.CENTERrun1=p1.add_run('%s苹果价格通知'%(today))run1.font.name='微软雅黑'run1._element.rPr.rFonts.set(qn('w:eastAsia'),u'微软雅黑')run1.font.size=Pt(22)run1.font.bold=Truep1.space_after=Pt(5)p1.space_before=Pt(5)p2=document.add_paragraph()run2=p2.add_run('Dear'+i+':')run2.font.name='等线'run2._element.rPr.rFonts.set(qn('w:eastAsia'),u'等线')run2.font.size=Pt(14)run2.font.bold=Truep3=document.add_paragraph()run3=p3.add_run('根据目前市场情况,今日我司苹果售价拟定为%s元每斤,特此通知。如有任何疑问可随时与我联系,谢谢!'%price)run3.font.name='等线'run3._element.rPr.rFonts.set(qn('w:eastAsia'),u'等线')run3.font.size=Pt(14)run3.font.bold=Truep4=document.add_paragraph()p4.alignment=WD_ALIGN_PARAGRAPH.RIGHTrun4=p4.add_run('联系人:小姚电话:1234567890')run4.font.name='等线'run4._element.rPr.rFonts.set(qn('w:eastAsia'),u'等线')run4.font.size=Pt(14)run4.font.bold=Truedocument.save('G://苹果价格通知-%s.docx'%i)第五步.运行代码,运行完成后找到对应文件夹,查看生成文档。图表5