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,文档可以设置默认格式,段落可以设置默认格式,段落内容也可以设置默认格式
Python批量创建word文档(1)- 纯文字的更多相关文章
- Python批量创建word文档(2)- 加图片和表格
Python创建word文档,任务要求:小杨在一家公司上班,每天都需要给不同的客户发送word文档,以告知客户每日黄金价格.要求在文档开始处给出banner条,价格日期等用表格表示.最后贴上自己的联系 ...
- C# 导出word文档及批量导出word文档(4)
接下来是批量导出word文档和批量打印word文件,批量导出word文档和批量打印word文件的思路差不多,只是批量打印不用打包压缩文件,而是把所有文件合成一个word,然后通过js来调用 ...
- C#实现通过模板自动创建Word文档的方法
原文地址:http://www.jb51.net/article/55332.htm 本文实例讲述了C#实现通过模板自动创建Word文档的方法,是非常实用的技巧.分享给大家供大家参考.具体实现方法 ...
- 在C#中创建word文档
在下面文档中 首先引用word组件:Microsoft.Office.Interop.Word 在头文件中写上 using Word = Microsoft.Office.Interop.Word; ...
- C# 导出word文档及批量导出word文档(1)
这里用到了两个dll,一个是aspose.word.dll,另外一个是ICSharpCode.SharpZipLib.dll,ICSharpCode.SharpZipLib.dll是用于批量 ...
- Java 后台创建word 文档
---恢复内容开始--- Java 后台创建 word 文档 自己总结 网上查阅的文档 分享POI 教程地址:http://www.tuicool.com/articles/emqaEf6 方式一. ...
- [java,2017-05-04] 创建word文档
package test; import java.text.SimpleDateFormat; import java.util.Date; import com.aspose.words.Data ...
- OpenXml SDK 2.0 创建Word文档 添加页、段落、页眉和页脚
using (WordprocessingDocument objWordDocument = WordprocessingDocument.Create(@"C:\********.doc ...
- 如何批量删除word文档中的超级链接?
有时候从网页上copy来的文章中,会带有非常多的链接,这些链接很烦人是吧?如何批量删除(一次性全部删除)word文章中的超链接呢? 有些朋友说,Ctrl+A全选文章,然后点击格式工具栏上的“清除格式” ...
随机推荐
- Leetcode 双周赛#32 题解
1540 K次操作转变字符串 #计数 题目链接 题意 给定两字符串\(s\)和\(t\),要求你在\(k\)次操作以内将字符串\(s\)转变为\(t\),其中第\(i\)次操作时,可选择如下操作: 选 ...
- Spring Boot 2.4发布了,但Spring Cloud用户不推荐着急升级
前段时间Spring Boot发布了本年度最后一个重要更新版本:Spring Boot 2.4.0. 最近在社群里也开始有讨论关于Spring Boot 2.4的一些使用问题.我发现有很多Spring ...
- for循环与while循环
1.两中循环的语法结构 for循环结构: for(表达式1;表达式2;表达式3) { 执行语句; } while循环结构: while(表达式1) { 执行语句; } 2.两者区别: 应用场景:由于f ...
- 如何破解QQ闪照
1.如何下载 通过公主公众号 "全是软件" 然后输入 294 即可获得下载链接 https://qsrj.lanzous.com/iU4Hddnnmne 目前的闪照破解工具只能破解 ...
- Django----初始化项目结构
1.初始化项目结构图 │ .gitignore # 提交git仓库时,不提交的文件必须要在这里进行标注 │ README.en.md # 英文(项目介绍) │ README.md # 中文项目简介 │ ...
- 使用 Zuul 聚合多个微服务的 Swagger 文档
在 Spring Boot 中集成 Swagger 可参考之前的文章:Spring Boot 2 集成 Swagger, 在各个微服务中的配置与之相同:本文仅介绍在 Zuul 中的配置 在 Zuul ...
- flask:蓝图--blueprint
一.蓝图 1.什么是蓝图?(WHAT) 1)蓝图就是模块化处理的类 2)用于实现单个应用的视图.模板.静态文件的集合 总结:蓝图就是一个存储操作路由映射方法的容器,主要用来实现客户端请求和URL相互关 ...
- PyQt(Python+Qt)学习随笔:QDateEdit日期编辑部件和QTimeEdit时间编辑部件
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 Designer输入部件中,Date Edit和T ...
- 第14.18节 爬虫实战4: request+BeautifulSoup+os实现利用公众服务Wi-Fi作为公网IP动态地址池
写在前面:本文相关方法为作者独创,仅供参考学习爬虫技术使用,请勿用作它途,禁止转载! 一. 引言 在爬虫爬取网页时,有时候希望不同的时候能以不同公网地址去爬取相关的内容,去网上购买地址资源池是大部分人 ...
- 深入理解python
1 python自身的威力 1.1 使用type.str.dir.其他内置函数 //type函数:返回任意对象的数据类型.比如:整型.字符串.列表.字典.元组.函数.类.模块,甚至类型对象都可以作为参 ...