word python插件_用 Python 自动生成 Word 文档
当然要用第三方库啦 :)
使用以下命令安装:
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文档的截图:
word python插件_用 Python 自动生成 Word 文档相关推荐
- DRF 自动生成接口文档
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 【接口文档】Django restful framework中自动生成API文档
Django restful framework中自动生成API文档 一.Swagger概述 1.引言 当接口开发完成,紧接着需要编写接口文档.传统的接口文档使用Word编写,or一些接口文档管理平台 ...
- PHP使用swagger-php自动生成api文档(详细附上完整例子)
thinkphp5结合swagger自动生成接口文档 整体介绍 swagger-php.swagger-ui.swagger-editor swagger-ui:主要就是放到tp项目public目录下 ...
- Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)(二)
二.跨域: 回到顶部 跨域知识介绍: 点我以前博客 跨域解决方法:CORS:跨域资源共享 CORS请求分类(简单请求和非简单请求) 简单请求(simple request):只需要在头信息之中增加一个 ...
- Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)(一)
阅读目录 一.Django中的缓存: 前戏: Django中的几种缓存方式: Django中的缓存应用: 二.跨域: 跨域知识介绍: CORS请求分类(简单请求和非简单请求) 示例: 三.自动生成接口 ...
- 自动生成接口文档之JApiDocs教程
JApiDocs教程 前言 作为一名优秀的程序员来说,由于涉及到要与前端进行对接,所以避免不了的就是写接口文档.写完接口文档,一旦代码返回结果,参数等出现变动,接口文档还得随之改动,十分麻烦,违背了我 ...
- DRF自动生成OpenAPI文档
DRF自动生成OpenAPI文档 API schemas是非常有用的,可以帮助我们生成接口文档以及可与API交互的动态客户端.Django REST Framework支持自动生成OpenAPI sc ...
- Go 项目自动生成接口文档
CSDN 中文章不一定能及时更新,欢迎关注我的博客查看最新版本:许盛的博客 背景 如何让后端同学愉快地写接口文档,是个老大难问题. 使用 GraphQL 当接口标准,倒是省了接口文档的问题,连前端代码 ...
- Django DRF 自动生成接口文档
文章目录 1. 引子 2. 自动生成接口文档 3. 文档描述说明的定义位置 1. 引子 前端请求的url由谁来写 url 主要有后台来写,写完给前端: 如果后台查询数据,需要借助查询条件才能查询前端需 ...
- SpringBoot 自动生成API文档
SpringBoot 自动生成API文档 在做项目的时候,如果项目是前后分离的,后端一定要和前端或者是移动端对接接口,那么问题来了,接口是不是要自己写给他们看,一般的会采用Excel或者Word来写, ...
最新文章
- 工业4.0进行时:工业机器人为何能够快速爆发?
- Java_Path_01_路径问题
- u-boot-2011.06-rc2移植到mini2440开发板(一)
- 房价预测 search Search 中对数据预处理的学习
- 浏览器 制作---TWebBrowser 控件
- mysql plus baomidou_com.baomidou.mybatisplus.core.mapper 不存在
- PHP 异常处理 throw new exception
- 单调栈:leetcode 84. 柱状图中最大的矩形/85最大矩形
- JavaScript下载本地文件
- 【毕业设计】单片机指纹识别智能考勤系统 - 嵌入式 物联网
- OpenGL 渲染 YUYV(YUV422)
- bootstrap,layui,elementui vantui的区别
- linux tf卡格式,一点点福利,把TF卡格式成NTFS格式,结果。。。。顺便问下大家的TF卡用什么格式?...
- logback日志配置说明
- 微信小程序校园论坛+后台管理系统|前后分离VUE
- app每月签到功能简单实现
- python 时间戳转化为日期格式 datetime、date、时间元组
- Blender PS Zbrush 人物眼球制作2 - Albedo 贴图和UV不匹配修正
- 【干货】最右视频去水印下载使用介绍
- 防偷窥神器!这款Windows软件,绝了!
热门文章
- 数据结构-头插法和尾插法
- 区块链及以太坊入门介绍
- 数据结构与算法课程设计
- Pytorch中torchvision.datasets.ImageFolder报错:Found 0 files in subfolders of:XXX,完美解决!
- PHP读取word文档的方法分析
- is invalid, transitive dependencies (if any) will not be available解决方案
- 满二叉树和完全二叉树的区别
- React.SetStateAction<never[]>
- 程序基石系列之C++多态的前提条件
- 李宏毅作业七其三 Network Compression (Network Pruning)