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,文档可以设置默认格式,段落可以设置默认格式,段落内容也可以设置默认格式

原文地址:https://www.cnblogs.com/mafu/p/13960529.html