使用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 相关文章推荐
使用python3.5仿微软记事本notepad
Jun 15 Python
JPype实现在python中调用JAVA的实例
Jul 19 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
python实现朴素贝叶斯算法
Nov 19 Python
Python将列表数据写入文件(txt, csv,excel)
Apr 03 Python
对PyQt5的输入对话框使用(QInputDialog)详解
Jun 25 Python
Python将文字转成语音并读出来的实例详解
Jul 15 Python
django创建超级用户过程解析
Sep 18 Python
使用pyqt 实现重复打开多个相同界面
Dec 13 Python
关于Pytorch的MNIST数据集的预处理详解
Jan 10 Python
Python生成词云的实现代码
Jan 14 Python
详解Django中的FBV和CBV对比分析
Mar 01 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生成无限栏目树
2017/03/16 PHP
Grid得到选择行数据的方法总结
2011/01/17 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
js二维数组定义和初始化的三种方法总结
2014/03/03 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
Python简单连接MongoDB数据库的方法
2016/03/15 Python
Python安装pycurl失败的解决方法
2018/10/15 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
python装饰器原理与用法深入详解
2019/12/19 Python
python3爬取torrent种子链接实例
2020/01/16 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
python安装后的目录在哪里
2020/06/21 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
新奥尔良珠宝:Mignon Faget
2020/11/23 全球购物
好的演讲稿开场白
2013/12/30 职场文书
开学典礼决心书
2014/03/11 职场文书
《乡下孩子》教学反思
2014/04/17 职场文书
护理实习生带教计划
2015/01/16 职场文书
元旦晚会主持词开场白
2015/05/28 职场文书
大一新生军训新闻稿
2015/07/17 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
Python3中PyQt5简单实现文件打开及保存
2021/06/10 Python