Python批量创建word文档(1)- 纯文字
Python创建word文档,任务要求:小杨在一家公司上班,每天都需要给不同的客户发送word文档,以告知客户每日黄金价格。最后贴上自己的联系方式。代码如下:
1 ''' 2 #python根据需求新建word文档 3 #首先安装python-docx 4 #任务需求,小杨在一家公司上班儿,每天都需要给客户发送当日黄金价格,内容如下 5 ######################关于下达2020年11月11日的黄金价格通知########### -这是标题 6 #然后是称呼,尊敬的XX,你好: 7 #然后是正文内容: 根据公司安排, 8 ''' 9 from docx import Document 10 from docx.enum.text import WD_PARAGRAPH_ALIGNMENT 11 from docx.shared import Pt 12 from docx.oxml.shared import qn 13 import time 14 from time import sleep 15 import os 16 17 #定义今日黄金价格 18 price = input("请输入今日黄金价格:") 19 #定义客户列表 20 company_list = ['客户1','客户2','客户3','客户4','客户5','客户6','客户7','客户8','客户9','客户10'] 21 #定义日期 22 today = time.strftime("%Y{y}%d{m}%m{d}",time.localtime()).format(y='年',m='月',d='日') 23 print(today) 24 25 #开始循环客户列表 26 for i in company_list: 27 #开始新建文档 28 document = Document() 29 #设置文档默认样式 30 document.styles['Normal'].font.name = u'宋体' 31 #设置整个文档中文字体默认格式 32 document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体') 33 34 #新建自然段1,即文档标题 35 p1 = document.add_paragraph() 36 #设置自然段1居中对齐 37 p1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER 38 #向自然段1添加内容 39 run1 = p1.add_run("关于下达%s的黄金价格通知" % (today)) 40 #设置文字字体为微软雅黑 41 run1.font.name = '微软雅黑' 42 run1.font._element.rPr.rFonts.set(qn('w:eastAsia'),u'微软雅黑') 43 #设置文字加粗 44 run1.font.bold = True 45 #设置文字大小 46 run1.font.size = Pt(16) 47 #设置段前段后距离 48 p1.space_after = Pt(5) 49 p1.space_before = Pt(5) 50 51 #新建自然段2,即文档称呼,默认 52 p2 = document.add_paragraph() 53 p2.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT #这段其实可以不用写,因为word文档默认格式就是靠左对齐 54 #向自然段添加内容 55 run2 = p2.add_run("尊敬的" + i + ":") 56 #设置自然段的字体 57 run2.font.name = '仿宋_GB2312' 58 #设置中文字体格式 59 run2._element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312') 60 #设置字体的大小 61 run2.font.size = Pt(12) 62 #设置字体加粗 63 run2.font.bold = True 64 65 #添加自然段3,即文档的通知内容 66 p3 = document.add_paragraph() 67 #设置自然段3的对齐方式 68 p3.aligment = WD_PARAGRAPH_ALIGNMENT.LEFT #word文档本来的格式是靠左,这段其实可以不用写 69 #向第三自然段添加内容 70 run3 = p3.add_run(' 根据公司安排,为提供更优质客户服务,我公司拟定今日黄金价格为%s,特此通知。' % price) 71 #设置自然段3的字体 72 run3.font.name = '隶书' 73 #设置自然段3内容的中文字体格式 74 run3._element.rPr.rFonts.set(qn('w:eastAsia'),u'隶书') 75 #设置自然段3的字体大小 76 run3.font.size = Pt(12) 77 #设置自然段3内容字体为加粗 78 run3.font.bold = True 79 80 #添加自然段4,即联系方式 81 p4 = document.add_paragraph() 82 #设置自然段4靠右对齐 83 p4.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT 84 #向自然段4添加内容 85 run4 = p4.add_run('(联系人:小杨, 电话:188888888888)') 86 #设置自然段4的内容的字体 87 run4.font.name = '仿宋_GB2312' 88 #设置第四自然段中文字体为仿宋 89 run4._element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312') 90 #设置第四自然段字体加粗 91 run4.font.bold = True 92 #设置第四自然段字体大小 93 run4.font.size = Pt(12) 94 95 if os.path.exists('%s-价格通知.docx' % i): 96 os.remove('%s-价格通知.docx' % i) 97 sleep(3) 98 #每次循环完保存一次文档 99 document.save('%s-价格通知.docx' % i)
效果截图:
注意:
1,word文档格式问题,标题(居中),称呼(顶格,也就是靠左),内容(缩进四格,靠左),结语(靠右);
2,利用python批量新建word文档,里面的格式如果接触过css就很好理解,分成三层,第一层是文档本身,是一个大div,第二层是包含在第一层里的自然段,也就是第二层div,第三层是自然段里的文字内容,也就是这个项目里的最后一层div。
3,文档可以设置默认格式,段落可以设置默认格式,段落内容也可以设置默认格式