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全选文章,然后点击格式工具栏上的“清除格式” ...
随机推荐
- 堆的数据结构java
public class MaxHeap { private int[] data; private int count; private int capacity; public MaxHeap(i ...
- Java蓝桥杯练习题——求小数n位后3个数
求整数除法小数点后第n位开始的3位数 位数不足的补0,如0.125小数第3位后三位:0.12500→500 输入格式:a b n,空格分开,a是被除数,b是除数,n是小数后的位置 输出格式:3位数字, ...
- 创建topic
sh kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic ...
- 【数据结构】关于前缀树(单词查找树,Trie)
前缀树的说明和用途 前缀树又叫单词查找树,Trie,是一类常用的数据结构,其特点是以空间换时间,在查找字符串时有极大的时间优势,其查找的时间复杂度与键的数量无关,在能找到时,最大的时间复杂度也仅为键的 ...
- 【linux】i2c使用分析&源码实战
目录 前言 1. 设备检查命令 1.1 查看I2C驱动 1.2 i2c-tools 1.2.1 I2C-detect安装 1.2.2 i2cdetect 命令 1.2.3 i2cget 命令 1.2. ...
- 基于CFSSL工具创建CA证书,服务端证书,客户端证书
背景描述 在局域网中部署组件时,想要通过证书来实现身份的认证,确保通信的安全性,可以通过cfssl工具来进行CA证书,服务端证书,客户端证书的创建. 目录 背景描述 部署cfssl工具 下载,上传cf ...
- moviepy音视频剪辑:使用rotate函数实现视频变换处理以及参数expand取值为True时的花屏问题解决方案
☞ ░ 前往老猿Python博文目录 ░ 一.rotate函数功能介绍 moviepy的rotate函数用于将剪辑逆时针旋转指定的角度或弧度. 调用语法:rotate(clip, angle, uni ...
- PyQt(Python+Qt)学习随笔:QMainWindow的splitDockWidget方法将QDockWidget停靠窗分割排列
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 主窗口的splitDockWidget方法用于将一个停靠窗占据的空间分 ...
- 转:Http协议中Cookie详细介绍
Http协议中Cookie详细介绍 Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie.内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了, ...
- PyQt(Python+Qt)学习随笔:QTableWidgetItem项的复选状态checkState访问方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget表格部件中的QTableWidgetItem项可以单独设置复选状态,如图所有 ...