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. VMW14.x虚拟机安装Mac10.13系统教程

    之前虚拟机安装Mac经常出问题,所以这次又重新安装Mac,为了加深映像和之后回忆方便,特写下此次安装教程. 一 工具的准备: 首先准备教程的软件和包 1,虚拟机VMW    下载地址:https:// ...

  2. 15.java设计模式之访问者模式

    基本需求: 电脑需要键盘鼠标等固定的组件组成 现在分为个人,组织等去买电脑,而同一种组件对不同的人(访问者)做出不同的折扣,从而电脑的价格也不一样 传统的解决方法:在组件内部进行判断访问人的类型,从而 ...

  3. 二:robot framework基本组成

    1.RF组成:套件.用例.关键字 套件:测试用例的集合,可以是一个模块的功能点的集合.也可以是很多模块功能点的集合 用例:一般是由多个关键字组成的 关键字:测试库.资源文件.用例所在文件的关键字表 2 ...

  4. OD断点操作

    原文链接:https://www.cnblogs.com/qiyeboy/p/6815988.html 在做Windows平台软件逆向时,Ollydbg是极其常用的逆向工具,动态调试功能非常强大.在调 ...

  5. argparse使用范例

    if __name__ == "__main__": # https://docs.python.org/zh-cn/dev/library/argparse.html impor ...

  6. 老猿学5G扫盲贴:3GPP中的5G计费架构

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.计费逻辑架构和信息流 在32240子系列文档内 ...

  7. PyQt(Python+Qt)学习随笔:信号签名中的万能Python类型PyQt_PyObject

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 信号在定义时参数如果使用字符串'PyQt_PyObject'表示参数可以是任何Python类型,这通 ...

  8. PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的orientation和centerButtons属性

    orientation属性 orientation属性表示QDialogButtonBox的方向,缺省情况下,方向为水平方向(值为Qt.Horizontal),表示QDialogButtonBox中的 ...

  9. 面试阿里,字节,腾讯90%被问到的springboot常见面试题,这次给你讲的明明白白!

    1.什么是Spring Boot? 多年来,随着新功能的增加,spring变得越来越复杂.只需访问https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的所有 ...

  10. DFS,BFS 练习(深搜,广搜,图,leetcode)

    https://leetcode-cn.com/problems/route-between-nodes-lcci/ 节点间通路.给定有向图,设计一个算法,找出两个节点之间是否存在一条路径. 示例1: ...