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全选文章,然后点击格式工具栏上的“清除格式” ...
随机推荐
- 通用于wps和excel的ntlm hashes窃取利用方式
https://evi1cg.me/archives/Get_NTLM_Hashes.html介绍了通过Microsoft Office 窃取 NTLM Hashes. 不过这种插入方法不适用于wps ...
- C语言讲义——错误处理
errno C语言不提供对错误处理的直接支持. 以返回值的形式表示是否出错. 在发生错误时,大多数的C函数调用返回1或NULL. 同时设置一个错误代码errno(全局变量),表示在函数调用期间发生了错 ...
- 编程C语言进阶篇——自定义数据类型:共同体
什么是"自定义数据类型"?顾名思义,就是用户可以随时在程序中自行定义新的数据类型.自定义数据类型时需要设置数据类型的名称及其成员.数据类型成员各属性的设置方法等同于变量设置时相应属 ...
- DevOps Workshop | 代码管理入门:基于代码扫描实现团队效率提升
CODING「DevOps Workshop 学习营地」持续火热进行中! 在这里,你可以轻松实践 DevOps 全流程.体验高效的云端开发.赢取精美礼品--第二期大奖「戴尔 U2718Q 显示器」将于 ...
- python - os.sep用法
python是跨平台的.在Windows上,文件的路径分隔符是'\',在Linux上是'/'.为了让代码在不同的平台上都能运行,那么路径应该写'\'还是'/'呢?使用os.sep的话,就不用考虑这个了 ...
- Spring Cloud 学习 (二) Ribbon
负载均衡是指将负载分摊到多个执行单元上,常见的负载均衡有两种方式:一种是独立进程单元,通过负载均衡策略,将请求转发到不同的执行单元上,例如 Ngnix:另一种是将负载均衡逻辑以代码的形式封装到服务消费 ...
- redis分布式锁解决超卖问题
redis事务 redis事务介绍: 1. redis事务可以一次执行多个命令,本质是一组命令的集合. 2.一个事务中的所有命令都会序列化,按顺序串行化的执行而不会被其他命令插入 作用:一个队列 ...
- 将Shiny APP搭建为独立的桌面可执行程序 - Deploying R shiny app as a standalone application
目录 起源! 目的? 怎么做? 0 准备工作 1 下载安装R-portable 2 配置 Rstudio 3 搭建Shiny App 3.1 添加模块 3.2 写AppUI和AppServer 3.3 ...
- Core在IIS的热发布问题或者报错文件已在另一个程序中打开
关于Core发布到IIS的热发布问题,或者覆盖dll文件的时候会报错"文件已在另一个程序中打开",也就是无法覆盖程序的问题,经过百度和分析总结以下几种方案: 一.使用app_off ...
- moviepy音视频剪辑:headblur的参数r_blur卷积核以及fx、fy、r_zone的功能作用及用途
☞ ░ 前往老猿Python博文目录 ░ 在moviepy1.03版本中,headblur的调用语法为:headblurbak(clip,fx,fy,r_zone,r_blur=None) 其中参数f ...