使用Python 自动生成 Word 文档的教程


Posted in Python onFebruary 13, 2020

当然要用第三方库啦 :)

使用以下命令安装:

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 文档的教程

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

Python 相关文章推荐
python变量不能以数字打头详解
Jul 06 Python
python机器人行走步数问题的解决
Jan 29 Python
Python实现使用卷积提取图片轮廓功能示例
May 12 Python
python将字符串以utf-8格式保存在txt文件中的方法
Oct 30 Python
Python循环结构的应用场景详解
Jul 11 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
Aug 12 Python
Python的Lambda函数用法详解
Sep 03 Python
python opencv 检测移动物体并截图保存实例
Mar 10 Python
django项目中新增app的2种实现方法
Apr 01 Python
keras 多任务多loss实例
Jun 22 Python
详解用selenium来下载小姐姐图片并保存
Jan 26 Python
Python开发.exe小工具的详细步骤
Jan 27 Python
python实现替换word中的关键文字(使用通配符)
Feb 13 #Python
python isinstance函数用法详解
Feb 13 #Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
Feb 13 #Python
基于python的docx模块处理word和WPS的docx格式文件方式
Feb 13 #Python
python 中的[:-1]和[::-1]的具体使用
Feb 13 #Python
Python使用docx模块实现刷题功能代码
Feb 13 #Python
Tensorflow训练MNIST手写数字识别模型
Feb 13 #Python
You might like
php修改时间格式的代码
2011/05/29 PHP
laravel安装和配置教程
2014/10/29 PHP
PHP概率计算函数汇总
2015/09/13 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
EXT中xtype的含义分析
2010/01/07 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
JS实现加载时锁定HTML页面元素的方法
2017/06/24 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
Windows下PyMongo下载及安装教程
2015/04/27 Python
介绍Python中的__future__模块
2015/04/27 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
Python中协程用法代码详解
2018/02/10 Python
基于Python fminunc 的替代方法
2020/02/29 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
5 分钟读懂Python 中的 Hook 钩子函数
2020/12/09 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
生物工程专业求职信
2014/09/03 职场文书
个人收入证明范本
2014/09/18 职场文书
博士论文答辩开场白
2015/06/01 职场文书
学术研讨会主持词
2015/07/04 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技