当然要用第三方库啦 :)

使用以下命令安装:

pip install python-docx

使用该库的基本步骤为:

1.建立一个文档对象(可自动使用默认模板建立,也可以使用已有文件)。

2.设置文档的格式(默认字体、页面边距等)。

3.在文档对象中加入段落文本、表格、图像等,并指定其样式。

4.保存文档。

注:本库仅支持生成Word2007以后版本的文档类型,即扩展名为.docx 的。

下面分步介绍其基本使用方法:

步骤一:

from docx import Document

doc = Document() #以默认模板建立文档对象

doc = Document('a.docx') # 读取a.docx文档,建立文档对象

步骤二:

from docx.shared import Inches,Pt

def chg_font(obj,fontname='微软雅黑',size=None):

## 设置字体函数

obj.font.name = fontname

obj._element.rPr.rFonts.set(qn('w:eastAsia'),fontname)

if size and isinstance(size,Pt):

obj.font.size = size

distance = Inches(0.3)

sec = doc.sections[0] # sections对应文档中的“节”

sec.left_margin = distance # 以下依次设置左、右、上、下页面边距

sec.right_margin = distance

sec.top_margin = distance

sec.bottom_margin = distance

sec.page_width =Inches(12) #设置页面宽度

sec.page_height = Inches(20) #设置页面高度

##设置默认字体

chg_font(doc.styles['Normal'],fontname='宋体')

步骤三:

1.添加段落文本

paragraph =doc.add_paragraph('text....')

ph_format =paragraph.paragraph_format

ph_format.space_before =Pt(10) #设置段前间距

ph_format.space_after =Pt(12) #设置段后间距

ph_format.line_spacing=Pt(19) #设置行间距

如果希望同一段落中的文本格式不同,就需要使用Run对象(可以理解为可以单独设置格式的段落内对象)。

如:

run = paragraph.add_run('text...')

run.bold = True #设置字体为粗体

chg_font(run,fontname='微软雅黑', size=Pt(12)) #设置字体和字号

2.添加表格,并写入相关内容

tab =doc.add_table(rows=4,cols=4) #添加一个4行4列的空表

cell=tab.cell(1,3) #获取某单元格对象(从0开始索引)

在单元格中添加文本:

cell.text='abc'

在单元格中添加多行文本(指定转行)

ph =cell.paragraphs[0]

run=ph.add_run(‘text....')'

run.add_break() # 添加一个折行

run.add_picture('a.png') # 插入图像,可以是内存中的图像,width=Inches(1.0)指定宽度。

3.在文档中添加图像:

doc.add_picture('a.png')

步骤四:

doc.save('a.docx') # 保存图像

做一个简单的测试,其生成文档的速度还是比较快的。感觉比以前用reportlab库生成PDF文档要快不少呢!

下图是用此方式生成docx文档的截图:

以上这篇使用Python 自动生成 Word 文档的教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2020-02-11

python新建word文档_使用Python 自动生成 Word 文档的教程相关推荐

  1. 读取word对应页码_毕业论文怎样自动生成目录及从任意页开始排页码

    怎样自动生成目录及从任意页开始排页码微软WORD这个软件大家都很熟悉,但有不少功能我们并没有用到,其中不乏非常实用的.今儿个我给大家介绍一下如何用WORD自动生成目录.这对那些用WORD写书,写论文的 ...

  2. Python 自动化教程(5) : 自动生成Word文件

    系列教程: Python 自动化教程(1) 概述,第一篇 Excel自动化 Python 自动化教程(2) : Excel自动化:使用pandas库 Python 自动化教程(3) : 自动生成PPT ...

  3. Java使用FreeMarker自动生成Word文档(带图片和表单)

    Java使用FreeMarker自动生成Word文档(带图片和表单) 1 背景 2 目标效果 3 创建Word模板 3.1 创建模板文档 3.2 转换模板文档 3.3 处理模板文档中的占位符 3.4 ...

  4. python自动生成和读取word_使用Python自动生成Word文档的教程

    当然要用第三方库啦 :) 使用以下命令安装: pip install python-docx 使用该库的基本步骤为: 1.建立一个文档对象(可自动使用默认模板建立,也可以使用已有文件). 2.设置文档 ...

  5. python将Excel数据自动生成Word报告【Pyhon-docx\openpyxl】

    我写在了知乎,图片没有搬运过来.链接:https://zhuanlan.zhihu.com/p/371767402 需求:日常工作中,需要对Excel表格的数据进行筛选计算整理,然后将数据做成Word ...

  6. 关于python-docx自动生成word文档的总结

    目录 一.结构 二.常用的API介绍 三.实例展示 展示一 展示二 最近接到一个需求--把数据库里的数据做成表格,然后形成一本书,打印出来送给客户.由于系统目前没有自动导出word或者excel类似的 ...

  7. Java-POI替换Word模板文档中的变量,生成Word文档

    第一步:在项目中导入POI的jar包,以及相关的jar包. 所需的jar包列表: 下载地址:http://download.csdn.net/download/qq_34908167/10046670 ...

  8. 使用FreeMarker自动生成Word文档

    使用FreeMarker自动生成Word文档 获取文件路径 创建一个word文档,然后再文档中在文档中写标识,对应代码中的map数据 2.将word转为xml后缀文件,再转为.ftl文件 3.保存路径 ...

  9. word插件php,php使用phpword插件生成word文档

    php使用phpword插件生成word文档 php使用phpword插件生成word文档,有需要的朋友可以参考参考. require_once '../libs/PHPWord/PHPWord.ph ...

最新文章

  1. 记录 之 在华为NPU上变更镜像
  2. .NET6之MiniAPI(三):Response
  3. web前端【第十一篇】jQuery属性相关操作
  4. Sharepoint 2013设置customErrors
  5. web developer tips (55):多项目解决方案中设置启动项
  6. laravel5.4根据数据表生成迁移文件
  7. Python:一文让你彻底理解numpy中axis=-1/0/1/2... [实例讲解:np.argmax(axis= -1 0 1 2) np.sum(aixs= -1 0 1 2)]
  8. 华为又遭重击:谷歌暂停提供 Android 支持,新出售手机不能使用 Google 服务
  9. conda An unexpected error has occurred
  10. 一种简单的JS加密解密方法
  11. 大数据之spark_spark SQL的建表语句
  12. 服务器大线程有什么作用,全面剖析超线程技术优点与缺点
  13. PDF文件怎么拆分页面,如何修改PDF内容
  14. u8登录找不到服务器,用友u8不能连接到服务器
  15. 设计模式之 Vistor 访问者模式:Swift 实现
  16. 读秀更新到V4.0了,会自动提醒验证码输入,支持包库全文下载
  17. 网络基础(三)物理层功能,Hub的工作原理
  18. 美团王兴再调整组织架构,大众点评高管淡出核心部门
  19. java模拟电梯程序_Java编写的电梯模拟系统《结对作业》
  20. 2021全球人才竞争力指数排名:瑞士居首,中国跻身前40;德科集团与北京外企成立合资公司LHH FESCO | 美通社头条...

热门文章

  1. 缓冲协议才是Python风靡全球的主要原因
  2. html ol圆点,HTML ol 标签 type属性
  3. Alpha 测试与 Beta 测试:有什么区别?
  4. 软件测试:Alpha测试与beta测试区别
  5. Reds 过期策略 内存淘汰策略 持久化策略
  6. 【Go】用 Go 访问 Redis
  7. 微信小程序:全新趣味测试
  8. 贝叶斯决策理论和概率密度估计方法
  9. MDM 与 MAM 的区别
  10. SpringBoot下实现华为云短信验证功能(含代码)