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

Python批量创建word文档(1)- 纯文字的更多相关文章

  1. Python批量创建word文档(2)- 加图片和表格

    Python创建word文档,任务要求:小杨在一家公司上班,每天都需要给不同的客户发送word文档,以告知客户每日黄金价格.要求在文档开始处给出banner条,价格日期等用表格表示.最后贴上自己的联系 ...

  2. C# 导出word文档及批量导出word文档(4)

          接下来是批量导出word文档和批量打印word文件,批量导出word文档和批量打印word文件的思路差不多,只是批量打印不用打包压缩文件,而是把所有文件合成一个word,然后通过js来调用 ...

  3. C#实现通过模板自动创建Word文档的方法

    原文地址:http://www.jb51.net/article/55332.htm   本文实例讲述了C#实现通过模板自动创建Word文档的方法,是非常实用的技巧.分享给大家供大家参考.具体实现方法 ...

  4. 在C#中创建word文档

    在下面文档中  首先引用word组件:Microsoft.Office.Interop.Word 在头文件中写上 using Word = Microsoft.Office.Interop.Word; ...

  5. C# 导出word文档及批量导出word文档(1)

         这里用到了两个dll,一个是aspose.word.dll,另外一个是ICSharpCode.SharpZipLib.dll,ICSharpCode.SharpZipLib.dll是用于批量 ...

  6. Java 后台创建word 文档

    ---恢复内容开始--- Java 后台创建 word 文档 自己总结  网上查阅的文档 分享POI 教程地址:http://www.tuicool.com/articles/emqaEf6 方式一. ...

  7. [java,2017-05-04] 创建word文档

    package test; import java.text.SimpleDateFormat; import java.util.Date; import com.aspose.words.Data ...

  8. OpenXml SDK 2.0 创建Word文档 添加页、段落、页眉和页脚

    using (WordprocessingDocument objWordDocument = WordprocessingDocument.Create(@"C:\********.doc ...

  9. 如何批量删除word文档中的超级链接?

    有时候从网页上copy来的文章中,会带有非常多的链接,这些链接很烦人是吧?如何批量删除(一次性全部删除)word文章中的超链接呢? 有些朋友说,Ctrl+A全选文章,然后点击格式工具栏上的“清除格式” ...

随机推荐

  1. Grakn Forces 2020 ABCDE题解

    看到老外评论区中说,这场的难度估计是\(div.1\)和\(div.1.5\)的合并 A. Circle Coloring #构造 题目链接 题意 给定三个长度为\(n\)数组\(a,b,c\),要你 ...

  2. 自动化运维工具之Puppet基础入门

    一.简介 puppet是什么?它能做什么? puppet是一个IT基础设施自动化运维工具,它能够帮助系统管理员管理基础设施的整个生命周期:比如,安装服务,提供配置文件,启动服务等等一系列操作:基于pu ...

  3. 01_Activity生命周期及传递数据

    1. Activity的生命周期: 2. Activity启动另一个Activity,并传递数据: package com.example.activitydemo; import android.a ...

  4. 【MMT】ICLR 2020: MMT(Mutual Mean-Teaching)方法,无监督域适应在Person Re-ID上性能再创新高

    原文链接 小样本学习与智能前沿 . 在这个公众号后台回复"200708",即可获得课件电子资源. 为了减轻噪音伪标签的影响,文章提出了一种无监督的MMT(Mutual Mean-T ...

  5. 【NOIP2017提高A组模拟9.7】JZOJ 计数题

    [NOIP2017提高A组模拟9.7]JZOJ 计数题 题目 Description Input Output Sample Input 5 2 2 3 4 5 Sample Output 8 6 D ...

  6. 第8.13节 Python类中内置方法__repr__详解

    当我们在交互环境下输入对象时会直接显示对象的信息,交互环境下输入print(对象)或代码中print(对象)也会输出对象的信息,这些输出信息与两个内置方法:__str__方法和__repr__方法有关 ...

  7. PyQt(Python+Qt)学习随笔:Qt Designer中部件的windowIcon属性

    windowIcon对象为部件对象的属性,但只有窗口对象有效,其他派生对象如pushButtong对象无效. 在windowIcon对象上有如下子属性设置: 这几个子属性实际上是QIcon类中继承的. ...

  8. [MRCTF2020]Ezpop

    题目: Welcome to index.php <?php //flag is in flag.php //WTF IS THIS? //Learn From https://ctf.ieki ...

  9. flask加载配置文件的三种方法

    1.第一种方法也是我们最长用到的,包括我们项目中也是采用第一种的方法,加载配置文件 配置信息全部写在config.py里面,在主app.py的文件中写入 import config app.confi ...

  10. Oracle函数:trunc、round、ceil和floor

    1.trunc函数 1).trunc(date) 格式:trunc(date,fmt) trunc用于截取时间,即便你指定不同的格式类型,返回的类型始终都是时间类型. 示例: with dates a ...