使用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文件右键找不到IDLE打开项解决办法
Jun 08 Python
Python实现输出程序执行进度百分比的方法
Sep 16 Python
Python实现基于二叉树存储结构的堆排序算法示例
Dec 08 Python
pandas 获取季度,月度,年度首尾日期的方法
Apr 11 Python
浅谈python标准库--functools.partial
Mar 13 Python
​如何愉快地迁移到 Python 3
Apr 28 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
Apr 29 Python
浅谈Python编程中3个常用的数据结构和算法
Apr 30 Python
pytorch模型预测结果与ndarray互转方式
Jan 15 Python
Python基于numpy模块实现回归预测
May 14 Python
Python非单向递归函数如何返回全部结果
Dec 18 Python
如何使用Python实现一个简易的ORM模型
May 12 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
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
模板引擎smarty工作原理以及使用示例
2014/05/25 PHP
PHP实现获取图片颜色值的方法
2014/07/11 PHP
php堆排序实现原理与应用方法
2015/01/03 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
2015/02/27 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
Javascript中的call()方法介绍
2015/03/15 Javascript
jQuery实现新消息在网页标题闪烁提示
2015/06/23 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
2015/12/02 Javascript
jQuery自定义数值抽奖活动代码
2016/06/11 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
2020/02/24 Javascript
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
详解Python命令行解析工具Argparse
2016/04/20 Python
深入浅析Python中的yield关键字
2018/01/24 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
python  文件的基本操作 菜中菜功能的实例代码
2019/07/17 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
Django实现简单的分页功能
2021/02/22 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
Data URI scheme详解和使用实例及图片base64编码实现方法
2014/05/08 HTML / CSS
苹果美国官方商城:Apple美国
2016/08/24 全球购物
英语分层教学实施方案
2014/06/15 职场文书
医院护士工作检讨书
2014/10/26 职场文书
优秀党员推荐材料
2014/12/18 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
2015年学校总务工作总结
2015/07/20 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python